在PHP中,我有一个Integer类型的变量。 当我将它传递给一个函数时,它被转换为一个字符串。 我用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也应该返回false,并且'ok'也应该返回false。 有功能吗?
答案 0 :(得分:0)
变量未转换为字符串。快速检查:
<?php
function setId($id)
{
var_dump($id);
// call of method "checkIfInteger" --> is_int($arg)
}
$a = 1;
setId($a);
结果是:int(1)
你的$ id来自哪里?在方法调用之前,你怎么知道它是一个int?
答案 1 :(得分:0)
//Where ever you wanted an integer, why not try this.?
int $id = intval($id, 0);
希望有所帮助
答案 2 :(得分:0)
好像你发送了这样的参数......
setId("1");// which will be a string ofcourse...
尝试以setId(1);
发送,您将在var_dump
输出中获得整数。
编辑:
<?php
$id=1;
if(gettype($id)=="integer")
{
setId($id);
}
else
{
echo "Function will not be called because ID is not an integer!";
}
function setId($id)
{
var_dump($id);
}