我试图计算那些没有被读取的值为0的消息。我得到的错误是它试图获取非对象的属性而且我理解为什么但不确定如何计算个别pm消息。
<?php echo count($personal_messages->message_read == 0); ?>
Array
(
[0] => stdClass Object
(
[id] => 2
[subject] => Test 2
[date_sent] => 2012-03-05 00:00:00
[first_name] => Jeffrey
[last_name] => Davidson
[message_read] => 1
)
[1] => stdClass Object
(
[id] => 1
[subject] => Testing
[date_sent] => 2012-03-04 00:00:00
[first_name] => Jeffrey
[last_name] => Davidson
[message_read] => 0
)
)
答案 0 :(得分:3)
Count期望传递一个ARRAY,你传递一个布尔值:你的相等比较的结果。为此,您必须通过循环遍历数组来手动计数。由于你也获得了“非对象的属性”,这意味着$ personal_messages实际上并不是一个对象。
您没有展示如何填充该变量,但代码最终会看起来像:
$count = 0;
foreach($whatever as $subobj) {
$count += ($subobj->message_read == 1);
}