我有我不明白的行为代码片段。当传递给empty()
的变量的不同副本时,TRUE值会给出不同的结果。为什么empty()对于变量和数组偏移的行为有所不同?
var_dump($this->controller->type['Company']['is_active']); // bool(true)
属性$controller
与$type
属性是多阵列对象。的is_active
价值bool(true)
应该是什么的empty()
结果呢?
var_dump(!empty($this->controller->type['Company']['is_active'])); //false
OK,让我们创建一个副本
$temp = $this->controller->type['Company']['is_active']; var_dump(!empty($temp)); //true
嗯不同的结果?
var_dump($this->controller->type['Company']['is_active'] === $temp);//true
怎么样铸造?
var_dump(!empty((int)$this->controller->type['Company']['is_active'])); //true
有人能解释这种现象吗?如果VAR存在且非空,非零值
事情是,如果'$这个 - >控制器 - >键入[ '公司'] [ 'is_active']实际上是'bool(true)'然后'var_dump(!empty($ this-> controller-> type ['Company'] ['is_active']));'实际上应该是'bool(真)'。因为你基本上在做'var_dump(!empty(true));''实际上'bool(true)'。这里有点腥...... – Andrew
无法确认你的问题。 https://开头3v4l。org/NH3FN –
调试:var_dump($ this-> controller-> type ['Company'] ['is_active'],$ temp);'所以我们可以看到他们真正的内容。 –