Мой проект в CakePHP, но я думаю, что это является одним из аспектов родной PHP, что я недоразумение ..PHP Исеть возвращает истину, но должно быть ложным
У меня есть метод afterFind($results, $primary = false)
обратного вызова в моем AppModel
. На одной конкретной находке, если я debug($results);
я получаю массив как этот
array(
'id' => '2',
'price' => '79.00',
'setup_time' => '5',
'cleanup_time' => '10',
'duration' => '60',
'capacity' => '1',
'discontinued' => false,
'service_category_id' => '11'
)
В моей afterFind
У меня есть некоторый код, как это:
foreach($results as &$model) {
// if multiple models
if(isset($model[$this->name][0])) {
....
Результаты находки из моего Service
модели так вставляя что для $this->name
и проверка if(isset($model['Service'][0]))
должна возвращать значение false, но оно возвращает true? if(isset($model['Service']))
возвращает false, как ожидалось.
Я получаю следующее предупреждение PHP:
Illegal строку смещения 'Сервис'
так, что здесь происходит? почему if(isset($model['Service'][0]))
возвращает true, если if(isset($model['Service']))
возвращает false?
UPDATE:
Я до сих пор не знаю ответа на мой первоначальный вопрос, но я получил вокруг него первый Проверяется $ результаты многомерный массив с
if(count($results) != count($results, COUNT_RECURSIVE))
Посмотрите на этот ответ: http://stackoverflow.com/a/16264301/577470 также: http://stackoverflow.com/questions/9869150/illegal-string-offset-warning-php – rodrigoio