Чтобы устранить некоторую путаницу, я полностью переписал этот вопрос.
Вот контроллер:
<?php
class StaffController extends AppController{
function test(){
$this->data = $this->Staff->find( 'list' );
}
}
Вот весь просмотр:
<code><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 ) ?>
Вот обработанный вывод:
Count: 2
Empty: true
Count: 2
array(2) {
[1]=>
string(12) "Mock Staff 1"
[2]=>
string(12) "Mock Staff 2"
}
Почему empty()
возвращает True, когда оба count()
и debug()
показывают, что было назначено непустое значение?
Это ошибка CakePHP?Ошибка в PHP????
Если я использую другую переменную вместо $ this-> data:
function test(){
$this->set( 'data', $this->Staff->find( 'list' ) );
}
И представление:
<code><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 ) ?>
это работает как ожидалось:
Count: 2
Empty: false
Count: 2
array(2) {
[1]=>
string(12) "Mock Staff 1"
[2]=>
string(12) "Mock Staff 2"
}
Любые берут?