echo in realtà non è una funzione (è un
costrutto del linguaggio) pertanto non richiede l'uso di
parentesi. echo (diversamente da altri costrutti
del linguaggio)) non si comporta come una funzion, quindi non può
essere sempre usata nel constesto di una funzione. Inoltre,se si vuole
passare più di un parametro a echo, i parametri
non devono essere racchiusi tra parentesi.
echo ha anche una sintassi abbreviata, nella quale si può
immediatamente seguire il simbolo di apertura del tag con un simbolo di uguale. questa sintassi abbreviata
funziona solo se la configurazione short_open_tag è
abilitata.
echo <<<END Questo esempio utilizza la sintassi "here document" per visualizzare più linee oltre al contenuto di $variable Notare che il terminatore del testo richiede anche il punto e virgola, senza alcun spazio aggiuntivo! END;
// Poiché echo non è una funzione la seguente riga non è valida. ($some_var) ? echo 'true' : echo 'false';
// Tuttavia la seguente funziona ($some_var) ? print 'true' : print 'false'; // print è un costrutto, ma // si comporta come una funzione, quindi // può essere utilizzato in questo contesto. echo $some_var ? 'true': 'false'; // altra versione dell'istruzione ?>
Passing multiple parameters to echo using commas (',')is not exactly identical to using the concatenation operator ('.'). There are two notable differences.
First, concatenation operators have much higher precedence. Referring to http://php.net/operators.precedence, there are many operators with lower precedence than concatenation, so it is a good idea to use the multi-argument form instead of passing concatenated strings.
<?php echo "The sum is " . 1 | 2; // output: "2". Parentheses needed. echo "The sum is ", 1 | 2; // output: "The sum is 3". Fine. ?>
Second, a slightly confusing phenomenon is that unlike passing arguments to functions, the values are evaluated one by one.
With ',' the cursor stops at the beginning every newline, while with '.' the cursor stops after the 0 in the beginning every line (because sleep() returns 0).