我的PHP函数认为我传递给它的变量($type)是空的,但当我告诉函数返回该变量($ype)时,它会返回我粘贴到它的内容。
function getData($result, $player = 0, $type = 0){
// This is here for me to test the bug and it prints $type ok, how when its == 0 ?
if ($type == 0){ return $type; }
if (!empty($result) AND $type != 0){
return $result[$player]->$type;
}elseif (!empty($result) AND $type == 0){
return $result[$player];
}else{
return FALSE;
}
}
这就是我在代码中调用该函数的方式:
$map_type = getData($replay, 1, "name");
是否存在包含函数的文件的问题?我认为没有,因为其他文件甚至该文件中的功能都可以正常工作
我检查了很多次,我没有看到打字错误,我实际上测试了它,它工作正常。
当变量未发送到函数时,将其设置为0是否存在一些错误?同样,我不这么认为,因为$player可以工作,类似的代码也可以用于我的其他函数。
松散类型的比较(如if ($type == 0){
,其中$type
是字符串值)可能会导致意外结果。
$type
将根据此处定义的规则强制转换为数字进行比较。
因此,像"13 Monkeys"
这样的字符串值将被松散地转换为13
,而"13 Monkeys" == 0
将返回false
;但是诸如"name"
之类的没有任何前导数字的值将被强制转换为0
,因此"name" == 0
是true
。
PHP文档