ich einigen alten Code Refactoring, wenn ich auf ein Konstrukt ähnlich wie diese gestolpert:Ersetzen IF mit einem logischen Ausdruck 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);
Jetzt seltsam es scheinen mag, ist dies viel kürzer als
$foo=bar();
if(checkForException($foo)) {
exit($foo->errorCode();
}
else {
process($foo);
}
Und etwas besser lesbar (zumindest nach der ersten Überraschung) dann
$foo=bar();
(checkForException($foo)) ? exit($foo->errorCode()) : process($foo);
Während kürzerer Code bedeutet nicht unbedingt mehr lesbaren Code, ich finde dies irgendwo in der Mitte der beiden "Standard" -Wege oben.
Mit anderen Worten, statt
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
}
Man könnte einfach
$foo && bar();
So schreiben, was ist der Grund für diese nicht viel zu sehen? Kann es so einfach sein wie: "Erfinde das Rad nicht neu, schreibe das besser lesbare if/else, und wenn du es wirklich verkürzen willst, dafür ist der ternäre Operator da"?
EDIT: Bitte beachten Sie, dass der obige Code wurde schnell aus dem ursprünglichen Code abgeleitet und war nur ein Beispiel für die Verwendung von "Kurzschluss" -Code. Wenn Sie können, dann zögern Sie nicht, Codeverbesserungen vorzuschlagen, da dies nicht das gewünschte Ergebnis der Frage war.
Beispiel No.2
userCheckedTheBox($user) && displayAppropriateInfo();
In einem strukturierten Framework verwenden Sie 'exit' nicht so viel. Außerdem können Sie mit einem vollständigen 'if/else 'mehrere Anweisungen im' else'-Zweig verwenden - manchmal ist ein Kurzschluss sehr nützlich, aber missbrauchen Sie das nicht. – moonwave99
Warum sollte es "seltsam" sein (wie in "seltsam wie es scheinen könnte"), dass weniger Zeichen kürzer sind als mehr Zeichen? Du musst ein behütetes Leben führen. –
"Was ist der Grund dafür, dass wir nicht viel Nutzen sehen?" --- weil es verschiedene Arten von Programmierern gibt: einige schreiben "cool" Code, andere - einfach, einen zu unterstützen. – zerkms