Use echo inside php one line if statement
parse-error, php, syntax
Solution
As you only mentioned in your question that `print` is a function but print is not a function but it has some return value thats why it can be used in expressions also but on the other hand `echo` doesnot have any return value.
also keep in mind that Ternary operator returns a value.
"In C-alike languages there is a distinction between statements and expressions. Syntactically, echo is a (simple) statement, like break or return and print is an (unary) operator, like "!" or "~". Therefore, like any other statement, echo cannot be part of an expression"
PHP treat echo as a statement.whatever you will write that will be displayed as it is.
you can read the detailed explanation here Reference: Comparing PHP's print and echo
Problem
I use to write one line if statements combined with echo like this: ``` <?php echo ( true ) ? 'true' : 'false'; ?> ``` Today I did alter en existing multi line if statement and the `echo` ended up inside the statement, which gave me a parse error: ``` <?php ( true ) ? echo 'true' : echo 'false'; ?> ``` Using `print` instead of `echo` makes it work, though. I figure that it works because `print` is a function. Update: `print` is not a function it just behaves like one, which means it has a return value. ``` <?php ( true ) ? print 'true' : print 'false'; ?> ``` What I don't understand is the reason why echo doesn't work. As i understand is the above syntax just a shorthand for a common if statement, so this shouldn't be working either: ``` if (true) echo 'true'; else echo 'false'; ``` But it does. Someone who knows?