为了减轻一些困惑,我完全重写了这个问题。
这是控制器:
<?php
class StaffController extends AppController{
function test(){
$this->data = $this->Staff->find( 'list' );
}
}
这是整个视图:
<pre>
Count: <?php echo count( $this->data ) . "\n"; ?>
Empty: <?php echo ( empty( $this->data ) ? 'true' : 'false' ) . "\n"; ?>
Count: <?php echo count( $this->data ) . "\n"; ?>
<?php var_dump( $this->data ) ?>
</pre>
这是渲染的输出:
Count: 2
Empty: true
Count: 2
array(2) {
[1]=>
string(12) "Mock Staff 1"
[2]=>
string(12) "Mock Staff 2"
}
为什么empty()
在两者都返回 Truecount()
并debug()
显示已分配非空值时?
这是一个 CakePHP 错误吗?一个PHP错误????
如果我使用另一个变量而不是 $this->data :
function test(){
$this->set( 'data', $this->Staff->find( 'list' ) );
}
和观点:
<pre>
Count: <?php echo count( $data ) . "\n"; ?>
Empty: <?php echo ( empty( $data ) ? 'true' : 'false' ) . "\n"; ?>
Count: <?php echo count( $data ) . "\n"; ?>
<?php var_dump( $data ) ?>
</pre>
它按预期工作:
Count: 2
Empty: false
Count: 2
array(2) {
[1]=>
string(12) "Mock Staff 1"
[2]=>
string(12) "Mock Staff 2"
}
有接盘侠吗?