stavo refactoring qualche vecchio codice quando sono incappato in un costrutto simile a questo:Sostituzione di IF con un'espressione logica in PHP
// function bar() returns a value
// if the value is an instance of customException class, terminate with error code
// else process the regular data
$foo = bar();
checkForException($foo) && exit($foo->errorCode());
process($foo);
Ora per quanto strano possa sembrare, questo è molto più breve poi
$foo=bar();
if(checkForException($foo)) {
exit($foo->errorCode();
}
else {
process($foo);
}
e un po 'più leggibile (almeno dopo la sorpresa iniziale) poi
$foo=bar();
(checkForException($foo)) ? exit($foo->errorCode()) : process($foo);
Mentre il codice più corto non significa necessariamente un codice più leggibile, trovo che si trovi da qualche parte nel mezzo dei due modi "standard" sopra.
In altre parole, invece di
if($foo) {
bar();
}
else {
// there is no real reason for this to exist, since
// I have nothing to write here, but I want to conform
// to the general coding practices and my coding OCD
}
Si potrebbe semplicemente scrivere
$foo && bar();
Allora, qual è il ragionamento dietro questo non vedendo molto uso? Può essere semplice come "Non reinventare la ruota, scrivi il più leggibile se/else, e se vuoi davvero accorciarlo, questo è l'operatore ternario"?
MODIFICA: tenere presente che il codice sopra riportato è stato rapidamente derivato dal codice originale e intendeva essere solo un esempio dell'uso del codice "cortocircuito". Se puoi, ti preghiamo di non suggerire miglioramenti del codice, poiché quello non era il risultato desiderato della domanda.
Esempio n ° 2
userCheckedTheBox($user) && displayAppropriateInfo();
In un framework strutturato, non si userà 'exit' tanto. Oltre a ciò, un pieno 'if/else' ti permette di usare più istruzioni nel ramo' else' - comunque a volte il cortocircuito è molto molto utile, ma non abusarne. – moonwave99
Perché dovrebbe essere "strano" (come in "strano come potrebbe sembrare") che meno caratteri sono più brevi di più caratteri? Devi vivere una vita protetta. –
"Allora, qual è il ragionamento alla base di questo non vedere molto uso?" --- perché ci sono diversi tipi di programmatori: alcuni scrivono codice "cool", un altro - facile da supportarne uno. – zerkms