//In PHP,
$a ? $b : echo $c //does not work but
$a ? $b : print $c //works
Y at-il une raison à cela?
BTW, est not
un mot clé en PHP?
//In PHP,
$a ? $b : echo $c //does not work but
$a ? $b : print $c //works
Y at-il une raison à cela?
BTW, est not
un mot clé en PHP?
valeur de retour. si vous avez écrit
$x = $a?$b:echo $c;
quelle valeur serait $ x obtenir le $ un être faux?
L'impression retourne toujours 1. echo ne renvoie rien.
Mais je n'ai pas la partie '$ x ='. Aussi, j'ai essayé une fonction qui n'a pas de valeur de retour, fonctionne toujours. – user198729
Les fonctions PHP qui ne renvoient pas explicitement une valeur seront 'void', c'est-à-dire qu'elles renverront 'null'. l'écho, n'étant pas une fonction mais une construction de langage, ne renvoie même pas cela. Quant au manque de $ x = ..., PHP est un interprète. Il calcule d'abord la valeur de l'expression?: Et décide ensuite de la rejeter ou de la passer. –
Est-ce que quiconque a modulé ma réponse pourrait expliquer ce qui ne va pas? –
echo
n'a pas de valeur de retour, print
fait!
void echo (string $arg1 [, string $... ])
int print (string $arg )
de php.net
Ce point est important dans ce cas puisque l'opérateur ternaire attend expressions
(expr1) ? (expr2) : (expr3)
echo "something"
ne peuvent pas être classés comme une expression.
not
n'est pas un PHP keyword.
Voir mon commentaire sous @SF – user198729
-1 Ce n'est pas la raison! –
il n'y a aucun mot-clé not
en PHP
echo
n'est pas une fonction, il est construit de la langue. Il ne retourne rien. Une autre void
fonctions toujours "retour" NULL
. C'est pourquoi le compilateur renvoie l'erreur unexpected T_ECHO
.
printf
, cependant, est une fonction et renvoie toujours 1
.
Par exemple cela fonctionne:
function echo2($e)
{
echo($e);
}
$a ? $b : echo2('foo');
En fait, print est aussi une construction de langage, mais il se comporte comme une fonction. –
@stereofrog: http://tinyurl.com/yhd5pw6 – Jacco
http://tinyurl.com/ydswsxt – user187291
Est-ce parce écho est une construction linguistique et l'impression est une fonction?
Oh, oui. L'exception toujours célèbre "Ne fonctionne pas". – Kobi