Я провел несколько часов, борясь с этим, но все еще сбит с толку. У меня есть простое утверждение if else, например:
<?php foreach($authors as $author): ?>
<?php if (!$authors): ?>
<p>No authors found</p>
<?php else: ?>
<p><a href="<?= base_url('pages/author/'.$author->id); ?>"><?= $author->name; ?></a></p>
<?php endif; ?>
<?php endforeach; ?>
$ авторов - это результат поиска в базе данных (с использованием класса построителя запросов Codeigniter, хотя это не актуально), и поэтому я считаю массив объектов. Если он находит данные, код работает нормально. Однако, если поиск ничего не дает, «Авторы не найдены» не отображаются. Var_dump из $ авторов после нулевого поиска дает:
array (size=0)
empty
Я также пытаюсь записать условие if как:
(!isset($authors))
(empty($authors))
($authors == null)
но ничего не работает.
Благодарен, если кто-нибудь может подсказать, что происходит.