0

我将一个 jQuery 数组传递给 PHP。我的回调函数在它是字符串时返回值,但在发送数组时中断。中断在 PHP 代码中。

我已经测试了以下内容:

$yes = array('this', 'is', 'an array');
echo is_array($yes);

返回“1”。

$yes = "array";
echo is_array($yes); 

这破坏了代码。

为什么我不返回“真”和“假”?

4

4 回答 4

1

如果您发布的代码直接来自您的文本编辑器,那么末尾缺少分号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';
}

返回真

于 2013-08-18T16:46:45.697 回答
1
$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';
于 2013-08-18T16:52:27.963 回答
0

尝试这样的事情:

echo is_array($yes) ? 'true' : 'false';

如果您想知道为什么这样做是必要的,也就是说,为什么只做echo is_array($yes)是不够的,请查看以下示例:http ://codepad.org/PcCbvTGe

如您所见,true输出为1并且false不产生任何输出。


使用ifhttp ://codepad.org/OIOZLqFc 完成的测试

<?php
$yes = array("trtr");
if(is_array($yes)) {
   echo "is an array";
} else {
   echo "is not";
}
于 2013-08-18T16:46:29.217 回答
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 );
于 2015-06-12T14:26:45.167 回答