我将一个jQuery数组传递给PHP。我的回调函数在字符串时返回值,但在发送数组时会中断。中断是在PHP代码中。
我测试了以下内容:
$yes = array('this', 'is', 'an array');
echo is_array($yes);
返回“1”。
$yes = "array";
echo is_array($yes);
打破了代码。
为什么我不回“真”和“假”?
答案 0 :(得分:1)
如果您发布的代码直接来自文本编辑器,那么echo is_array($yes)
末尾缺少分号就是其破解的原因。
编辑:只是为了澄清你正在返回true / false,而不是以1或0的形式。你应该将is_array()
与条件结合使用。
$yes = 'asdf';
if (is_array($yes)){
echo 'true';
} else {
echo 'false';
}
返回false
$yes = array('this', 'is', 'an', 'array');
if (is_array($yes)){
echo 'true';
} else {
echo 'false';
}
返回true
答案 1 :(得分:1)
$yes = array('this', 'is', 'an array');
echo is_array($yes);
输出 - > 1
,is_array($yes)
返回true
,相当于echo true;
,输出1
$yes = "array";
echo is_array($yes);//missing semicolon
输出(无) - >
因为is_array($yes)
返回false
,相当于echo false;
,而不会输出任何内容
来自Manual
布尔值TRUE值转换为字符串“1”。布尔值为FALSE 转换为“”(空字符串)。这允许转换回来 在布尔值和字符串值之间。
所以如果你编码
会更好echo (is_array($yes)) ? 'do something condition is true' : 'do something condition is false';
答案 2 :(得分:0)
尝试这样的事情:
echo is_array($yes) ? 'true' : 'false';
如果您想知道为什么这是必要的,那就是为什么只做echo is_array($yes)
还不够,请查看此示例:http://codepad.org/PcCbvTGe
如您所见,true
输出为1
,false
不产生输出。
使用if
进行的测试:http://codepad.org/OIOZLqFc
<?php
$yes = array("trtr");
if(is_array($yes)) {
echo "is an array";
} else {
echo "is not";
}
答案 3 :(得分:0)
$test_array = ( (array)$var === $var )? true : false;
if( $test_array ) ...
或
function test_array( $var )
{
return (array)$var === $var;
}
//...the anywhere else ...
if( test_array( $my_var) )...
如果要显示数据及其类型,只需使用:
var_dump( $my_var );