Zend Framework: проверьте, установлен ли Zend View Placeholder

Как проверить, есть ли Zend View Placeholder isset перед тем, как вывести его из системы? Поскольку я хочу добавить «-» к нему, прежде чем выводить его.

Я пытался

echo isset($this->placeholder('title')) ? ' - ' . $this->placeholder('title') : ''; 

Но я получил

Неустранимая ошибка: нельзя использовать возвращаемое значение метода в контексте записи в D: \ Projects \ Websites \ php \ ZendFramework \ LearningZF \ application \ layouts \ scripts \ layout.phtml в строке 5

На стороне примечания, как получилось, когда я получил эту ошибку, почему это не показано в сценарии просмотра ошибок? Ошибка была показана на пустой странице без макета.

Для причины фатальной ошибки см. Вопрос PHP: нельзя использовать возвращаемое значение метода в контексте записи .

Таким образом, вы можете использовать временную переменную или $this->placeholder()->getRegistry()->containerExists("key") которая возвращает логическое значение.

 echo ($this->placeholder()->getRegistry()->containerExists("title")) ? " - " . $this->placeholder("title") : ""; 

Другой способ сделать это:

 // get a placeholder registry instance and create a container $registry = Zend_View_Helper_Placeholder_Registry::getRegistry(); $myPlaceholder = $registry->createContainer('myPlaceholder'); 

Затем вы можете проверить, существует ли местозаполнитель:

 $registry->containerExists('myPlaceholder') 

Или проверьте содержимое вашего заполнителя с помощью:

 $myPlaceholder->getValue(); 

И, конечно, визуализировать, просто повторяя это.

Предупреждение: Отсутствует аргумент 1 для Zend_View_Helper_Placeholder :: placeholder () в /library/Zend/View/Helper/Placeholder.php в строке 72

Примечание. Неопределенная переменная: имя в /library/Zend/View/Helper/Placeholder.php в строке 74

Неустранимая ошибка: вызов неопределенного метода Zend_View_Helper_Placeholder_Container :: getRegistry () в /path/to/index.phtml в строке 109

По моему комментарию к ответу Бенджамина Кремера (роковая ошибка, показанная выше), я придумал приятное простое решение:

 $content = $this->placeholder('placeholderName')->getValue(); if (!empty($content)) { echo $content; }