在PHP中从int自动转换为字符串

时间:2014-01-09 10:12:38

标签: php string function integer

在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。 有功能吗?

3 个答案:

答案 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);
}