检查PHP 7中是否存在对象值的最有效方法

时间:2017-03-29 12:55:12

标签: php

我在PHP 7中有以下对象:

if(mBackground!=null)
mBackground.registerSensorManager();

在该对象的任何键中检查// Unregister SensorManager when exiting mBackground.unregisterSensorManager(); (int) 0 => object() { 'master' => null }, (int) 1 => object() { 'master' => true }, (int) 2 => object() { 'master' => null }, 的最有效方法是什么?

我可以遍历对象,然后设置一个变量,例如

master

但这似乎效率低下。

对象本身在每个节点中都有其他数据,这是一个简化的例子。

我尝试编写的内容,尽可能少的几行,此对象的任何部分都有true或者,反过来查看它,是我的$master = 0; foreach ($obj as $key => $value) { if ($value->master) { $master++; } } if ($master !== 0) { } 节点在此对象上设置为master == true吗?返回true或false可能足以作为输出,尽管计数也可以。< / p>

3 个答案:

答案 0 :(得分:2)

假设您不想循环遍历数组,以及&#34; master&#34;的关键字。数组总是&#34; master&#34;,然后这个单行应该这样做:

$masterCount = count(array_filter(array_column($masterArray,'master')));

array_column用于获取&#34; master&#34;的所有值。没有闭包的列array_filter将自动过滤掉空值(false,null,0),新数组的count将获得真值的数量。

答案 1 :(得分:0)

if ($value->master && $value->master !== null) {
       $master++;
}

看一下这张桌子: http://php.net/manual/en/types.comparisons.php

答案 2 :(得分:0)

使用三等号

if ($value->master === TRUE) {
   // your code here
}