【发布时间】:2014-01-27 19:50:09
【问题描述】:
在 PHP 中,我有一个整数类型的变量。 当我将它传递给一个函数时,它被转换为一个字符串。 我用 var_dump 对其进行了测试。当我调用该函数时,它是一个整数。 函数调用后直接就是一个字符串。
代码:
public function setId($id)
{
var_dump($id);
// call of method "checkIfInteger" --> is_int($arg)
}
编辑:好的,伙计们,我明白了。在我的 setId 方法中,我有另一个检查方法来修剪参数 (&$id) - 例如,当我输入“ 10 ”时,之后我使用了一个(修剪过的)字符串。
另一个问题: 我使用 intval,但 intval('OK') 返回一个整数。 '25' 应该返回 true,25 也是,2.5 应该返回 false,并且 'ok' 也是。 有没有可用的功能?
【问题讨论】:
-
好的,有什么问题?
-
你能解释一下为什么会这样吗?
-
取决于它周围的代码,你没有显示。我刚刚尝试了
$t = 10; var_dump($t); function test($t) { var_dump($t); } test($t);和两个状态 int(10),所以作为基本代码,没有强制转换。 -
我也试过了,函数内的
var_dump($id)对我来说仍然是一个整数。 -
@DachBoden 您展示的代码不会导致您展示的转换,因此您将不得不展示如何使用此代码来影响不同的变量类型。作为普通 PHP,该函数加上带数字的调用不会导致隐式类型转换
标签: php string function integer