我一直在想,这个速记,如果我们可以这么叫它,是不是在专业PHP开发人员中被接受的编码实践:
foo() && bar();而不是
if( foo() ) {
bar();
}虽然我的单行代码要整洁得多,但我还没有看到它在任何地方被使用。
发布于 2011-08-06 20:33:41
这是许多语言开发人员的普遍做法。从技术上讲,它没有什么问题,但从它在StackOverflow上出现的次数来看,我会继续说,它是“只有在它是唯一有意义的东西时才能使用”。大多数人都没有料到会这样。
也就是说,这是完全有效的:
foo()?bar()?bat():zonk():baz();按原样
foo() && bar() && baz();只需记住:
function foo(){return true;}
function bar(){echo "bar";}
function baz(){echo "baz"; return 2;}
echo foo()||foo()?baz():baz(); // baz2发布于 2011-08-06 20:24:28
就我个人而言,我看不出有什么问题。它相当广泛,所以大多数PHP程序员会理解它,就像他们理解扩展版本一样,这使得它完全可以接受。
发布于 2011-08-06 20:45:37
最重要的部分是编写易于阅读的代码。例如,使用像foo()和bar()这样的函数名是完全无用的,所以很难说你想要比较这两个中的哪一个更好。
除此之外,if示例也有一些相当大的缺陷:
if是一种语言构造,但你可以像使用函数一样使用它。另一种建议是:
if (foo()) {但是你想要比较这两者:代码总是在它的上下文中。并且可读代码使用它的上下文。你的两个建议都是有效的,关键是你已经可以从代码中读取含义:
conditionMet() && gotForIt();
if (conditionMet()) goForIt();你自己决定吧。只是不要把一行和另一行混在一起,所以在你的整个代码中都要保持一种风格。
https://stackoverflow.com/questions/6966742
复制相似问题