L'utilisation de l'écho à l'intérieur de php on line si la déclaration
- Je utiliser pour écrire une seule ligne si consolidés combinés avec des echo comme ceci:
<?php echo ( true ) ? 'true' : 'false'; ?>
Aujourd'hui, je ne modifie en existant multi ligne si la déclaration et la echo
fini à l'intérieur de l'énoncé, ce qui m'a donné une erreur d'analyse:
<?php ( true ) ? echo 'true' : echo 'false'; ?>
À l'aide de print
au lieu de echo
le fait fonctionner, cependant. Je suppose que cela fonctionne parce que print
est un fonction. Mise à jour: print
n'est pas une fonction juste se comporte comme un, ce qui signifie qu'il a une valeur de retour.
<?php ( true ) ? print 'true' : print 'false'; ?>
Ce que je ne comprends pas, c'est la raison pour laquelle echo ne fonctionne pas. Comme je comprends, c'est la syntaxe ci-dessus, juste une abréviation, pour une commune, si la déclaration, donc il ne devrait pas être travail:
if (true) echo 'true'; else echo 'false';
Mais il ne. Quelqu'un qui sait?
OriginalL'auteur daniel.auener | 2013-12-03
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez mentionné dans votre question que
print
est un fonction mais d'impression n'est pas une fonction mais il a une certaine valeur de retour c'est pourquoi il peut être utilisé dans des expressions aussi mais d'un autre côtéecho
n'est pas avoir une valeur de retour.également garder à l'esprit que opérateur Ternaire renvoie une valeur.
"En C-alike langues il y a une distinction entre les déclarations et les expressions. Du point de vue syntaxique, l'echo est un (simple) de l'énoncé, comme pause ou de revenir et d'impression est un (unaire) de l'opérateur, à l'instar de "!" ou "~". Par conséquent, comme toute autre déclaration, echo ne peut pas faire partie d'une expression"
PHP traiter écho comme une déclaration.tout ce que vous écrivez qui sera affiché tel qu'il est.
vous pouvez lire l'explication détaillée ici Référence: Comparaison de PHP print et echo
Mise à jour de ma question sur
print
étant une fonction, merci.vous êtes les bienvenus 🙂
OriginalL'auteur R R
Comme vous pouvez le lire à partir de la documentation PHP:
http://php.net/manual/en/language.operators.comparison.php
L'opérateur ternaire attend
expressions
, qui est juste une façon élégante de direa value
. Echo ne retourne rien et n'a aucune valeur en ce sens qu'il n'est pas une expression.Impression sur l'autre main, retourne
something
puisque c'est une fonction, faisant d'elle une expression valide.OriginalL'auteur smassey
en PHP, de l'impression et de l'écho n'est pas la fonction, mais la langue de construire et, essentiellement, de l'impression et de l'écho n'a pas besoin de l'aide de parenthèses.
la différence est que l'impression est laguage construire et peuvent se comporte comme une fonction, mais echo peut pas!
PHP:echo - Manuel
OriginalL'auteur user2990252