Используйте echo внутри php one line if оператор
Я использую, чтобы написать одну строку, если операторы в сочетании с эхом, как это:
<?php echo ( true ) ? 'true' : 'false'; ?>
сегодня я изменил существующую многострочную инструкцию if иecho
оказался внутри оператора, который дал мне ошибку разбора:
<?php ( true ) ? echo 'true' : echo 'false'; ?>
используя print
вместо echo
заставляет его работать, хотя. Я считаю, что это работает, потому что print
это функции. обновление: print
это не функция, она просто ведет себя как одна, что означает, что она имеет возврат значение.
<?php ( true ) ? print 'true' : print 'false'; ?>
чего я не понимаю, почему " Эхо " не работает. Как я понимаю, приведенный выше синтаксис просто стенография для общего оператора if, поэтому это тоже не должно работать:
if (true) echo 'true'; else echo 'false';
но это не так. Кто-то, кто знает?
3 ответов
Как вы только упомянули в своем вопросе, что print
Это функции но печать не является функцией но он имеет некоторое возвращаемое значение, поэтому его можно использовать и в выражениях, но с другой стороны echo
не имеет возвращаемого значения.
также имейте в виду, что тернарный оператор возвращает значение.
" в C-подобных языках существует различие между утверждениями и выражениями. Синтаксически, echo является (простой) оператор, например break или return и print, является (унарным) оператором, например "!" или."~" Поэтому, как и любое другое утверждение, echo не может быть частью выражения"
PHP рассматривает echo как оператор.все, что вы напишете, будет отображаться как есть.
вы можете прочитать подробное объяснение здесь ссылка: сравнение печати PHP и echo
как вы можете прочитать из документации PHP:
http://php.net/manual/en/language.operators.comparison.php
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
тернарный оператор ожидает expressions
, который является просто причудливый способ сказать a value
. Echo ничего не возвращает и поэтому не имеет значения, что означает, что это не выражение.
печать с другой стороны, возвращает something
поскольку это функция, делая ее допустимым выражением.
в PHP печать и эхо не являются функцией, но языковая конструкция и в основном печать и эхо не нуждаются в круглых скобках.
разница в том, что печать является конструкцией laguage и может вести себя как функция, но эхо не может!