在php中,数组被认为是布尔值吗?

use*_*368 5 php casting type-conversion

我在这里有一个简单的问题.我知道cakePHP find('first')函数返回一个包含第一个结果的数组(如果找到),否则返回false.我的问题是,如果我写这样的支票怎么办:

if(result_is_array) // that means I have data
{
    // do something
}
else // that means result is a boolean
{
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

find('first')我可以这样说,而不是检查从中获得的结果是否是一个数组:

$result = $this->MyModel->find('first');
if($result)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果我在这里得到一个数组,那会TRUE在php 中评估吗?是if(array())等于true在PHP?

Man*_*eUK 8

是的,你可以做到

$result = $this->MyModel->find('first');
if($result)
Run Code Online (Sandbox Code Playgroud)

length > 0返回的数组true

解释在这里的文档中

转换为布尔值时,以下值被视为FALSE

  • 一个零元素的数组

其他每个值都被视为TRUE