我将一个 jQuery 数组传递给 PHP。我的回调函数在它是字符串时返回值,但在发送数组时中断。中断在 PHP 代码中。
我已经测试了以下内容:
$yes = array('this', 'is', 'an array');
echo is_array($yes);
返回“1”。
$yes = "array";
echo is_array($yes);
这破坏了代码。
为什么我不返回“真”和“假”?
如果您发布的代码直接来自您的文本编辑器,那么末尾缺少分号echo is_array($yes)
就是其中断的原因。
编辑:只是为了澄清您返回的是真/假,而不是以 1 或 0 的形式。您应该is_array()
与条件结合使用。
$yes = 'asdf';
if (is_array($yes)){
echo 'true';
} else {
echo 'false';
}
返回假
$yes = array('this', 'is', 'an', 'array');
if (is_array($yes)){
echo 'true';
} else {
echo 'false';
}
返回真
$yes = array('this', 'is', 'an array');
echo is_array($yes);
输出——>1
asis_array($yes)
返回true
等同于echo true;
哪个输出1
$yes = "array";
echo is_array($yes);//missing semicolon
输出(无)-->
asis_array($yes)
返回false
等价于echo false;
which 什么也不输出
来自手册
布尔 TRUE 值转换为字符串“1”。Boolean FALSE 被转换为“”(空字符串)。这允许在布尔值和字符串值之间来回转换。
所以如果你编码会更好
echo (is_array($yes)) ? 'do something condition is true' : 'do something condition is false';
尝试这样的事情:
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";
}
$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 );