Вот инструкция echo
:
echo " <a class=\"pagination-link\" href='{$_SERVER['PATH_INFO']}?page=$nextpage#comment-target'> > </a> ";
А вот и ternary expression
. Он присоединяет #comment-target
к концу ссылки, только если условие истинно:
( $paginationAddCommentAnchor ?? null) ? '#comment-target' : null
Мне нужно заменить в заявлении echo
, #comment-target
на ternary expression
, но каждая попытка заканчивается уродливым шаром грязи с неправильными цитатами. Пример попытки:
echo " <a class=\"pagination-link\" href='{$_SERVER['PATH_INFO']}?page=$nextpage . ( $paginationAddCommentAnchor ?? null) ? '#comment-target' : null'> > </a> ";
Каким будет правильный синтаксис, чтобы конечный результат был таким же, как исходный оператор echo
, но полученный с помощью троичного?
$paginationAddCommentAnchor ?? null
совпадает с$paginationAddCommentAnchor
- person axiac   schedule 02.05.2017"
), но это все. Если вам нужно оценить выражение, вы должны поместить его за пределы строки и объединить его значение с окружающими строками, используя оператор конкатенации строк (.
). - person axiac   schedule 02.05.2017$paginationAddCommentAnchor ?? null
и переменная пуста, это вызовет ошибку. - person Robert Brax   schedule 02.05.2017NULL
и оценивается какFALSE
в логическом контексте без каких-либо ошибок, предупреждений или уведомлений. - person axiac   schedule 02.05.2017$commentAnchor = $paginationAddCommentAnchor ? '#comment-target' : null ;
= ›'Undefined variable: paginationAddCommentAnchor'
- person Robert Brax   schedule 02.05.2017NULL
(или другого значения, в зависимости от назначения переменной) перед их использованием (поверх скрипта или функции или непосредственно перед блокомfor
,if
и т. Д., Где они используются впервые). Это помогает писать код, который легче читать и понимать (и с меньшим количеством ошибок). - person axiac   schedule 02.05.2017