【问题标题】:PHP integer type getting lost on function callPHP整数类型在函数调用中丢失
【发布时间】:2011-09-05 16:12:06
【问题描述】:

我有一些代码可以提取数据库主键并通过调用函数来遍历它们。

当我从数据库中获取密钥并执行 is_int($key) 时,它返回 true。

然后我调用一个函数:thisfunction($key)

在调用函数中,我这样做是为了让您可以传入 $key 并且该函数会加载该键的行,或者您可以将该行作为对象传递。在被调用函数的开头,它检查 $key 是否是_int。当我使用整数值调用它时,它返回 false。

【问题讨论】:

    标签: php integer isinteger


    【解决方案1】:

    你从数据库中得到的一切都是字符串。

    这意味着,即使您的数据库的列具有 INT 值,您也会像这样得到它们:

    id, name, age
    array("43", "Rok", "19");
    

    【讨论】:

    • 我在 Yii 框架中工作,并假设模型会将字符串从数据库转换为整数。我将检查更改为 is_numeric() 并停止了错误。
    • +1 如果你能证明Everything you get from database is string.
    • @ajreal,这是考虑到 mysql&PHP(我不能对所有数据库都这么说),而且很明显 OP 正在使用可以转换它的数据库。
    【解决方案2】:

    由于您从数据库中获取的所有内容都是类型字符串,因此您可以尝试使用 is_numeric() 而不是 is_int()。

    【讨论】:

      【解决方案3】:

      也许可以试试 ctype_digit() 函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-06
        • 1970-01-01
        • 1970-01-01
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多