if ($var <> "\r" && $var <> " ")
è equivalente a
if (!$var == "r" && !$var == " ")
Se no, che differenza c'è?
Printable View
if ($var <> "\r" && $var <> " ")
è equivalente a
if (!$var == "r" && !$var == " ")
Se no, che differenza c'è?
Si, sono equivalenti; a parte l'errore di battitura ("r" nella seconda versione al posto di "\r").
Boh io, essendo Javofilo, prediligo l'operatore di diseguaglianza !=
quello <> mi fa venire i brividi (vb) :P
Errato, non sono equivalenti, mi son sbagliato :oops: ... quando si fa di fretta!
Il fatto che non siano equivalnti dipende dal fatto che "!" viene eseguito prima di "==", per renderli equivalenti devi quindi usare le parentesi, modificando così il secondo:
[code:1:557a070d08]if ($var <> "\r" && $var <> " ")
è equivalente a
if (!($var == "\r") && !($var == " "))[/code:1:557a070d08]
ah... infatti uno lo accettava, l'altro no...
ma nel primo caso il senso era
se (non $var == " ")
ma non $var come viene interpretata dal php, cioè cosa significa?
La variabile viene convertita automaticamente in booleana quando gli si applica un operatore logico; il modo in ci viene convertita è identico a come descritto qui: http://www.php.net/manual/it/languag...oolean.casting
ok ho letto... tutto chiaro, grazie!
Citazione:
Originalmente inviato da gve
Leggermente OT:
voi che ne dite della sintassi alternativa per le if:
solita
[code:1:531c7dd528]if ($a == $b) {
$c = 1;
} else {
$c = 2;
}[/code:1:531c7dd528]
alternativa
[code:1:531c7dd528]$c = ($a == $b) ? 1 : 2;[/code:1:531c7dd528]
?
Io la trovo utilissima in casi "veloci", ma devo ammettere che e' bruttina da leggere.
bruttina ??? è bellissima oltre che comodissima.....
guarda questa:
[code:1:c208e1ca3f]echo "a>b? ";
if ($a>$b)
echo " si";
else
echo " no";
echo " fine operazione";
[/code:1:c208e1ca3f]
e
[code:1:c208e1ca3f]echo "a>b? ".(($a>$b)?" si": " no")." fine operazione";[/code:1:c208e1ca3f]
Io adoro le espressioni sintetiche ... quindi son d'accordo con Jole.
Inoltre faccio presente che non è propriamente una sintassi alternativa, ma che sono due cose diverse: if ... else è una struttura di controllo, un costrutto del linguaggio che serve a controllare in modo condizionale il flusso degli altri elementi dello script, mentre "? :" è un operatore (ovviamente booleano), ovvero qulcosa di più simile a una somma, e come tale restituisce un valore booleano.
:D
Io insisto che e' meno elegante. Sulla utilita' siamo tutti d'accordo.
:wink:
Vuoi mettere l'eleganza del secondo codice scritto da Jole nel suo esempio rispetto al primo? Molto meglio il secondo :p