首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常见的做法?

常见的做法?
EN

Stack Overflow用户
提问于 2011-08-06 20:21:03
回答 4查看 93关注 0票数 2

我一直在想,这个速记,如果我们可以这么叫它,是不是在专业PHP开发人员中被接受的编码实践:

代码语言:javascript
复制
foo() && bar();

而不是

代码语言:javascript
复制
if( foo() ) {
    bar();
}

虽然我的单行代码要整洁得多,但我还没有看到它在任何地方被使用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-06 20:33:41

这是许多语言开发人员的普遍做法。从技术上讲,它没有什么问题,但从它在StackOverflow上出现的次数来看,我会继续说,它是“只有在它是唯一有意义的东西时才能使用”。大多数人都没有料到会这样。

也就是说,这是完全有效的:

代码语言:javascript
复制
foo()?bar()?bat():zonk():baz();

按原样

代码语言:javascript
复制
foo() && bar() && baz();

只需记住:

代码语言:javascript
复制
function foo(){return true;} 
function bar(){echo "bar";} 
function baz(){echo "baz";  return 2;} 
echo foo()||foo()?baz():baz(); // baz2
票数 3
EN

Stack Overflow用户

发布于 2011-08-06 20:24:28

就我个人而言,我看不出有什么问题。它相当广泛,所以大多数PHP程序员会理解它,就像他们理解扩展版本一样,这使得它完全可以接受。

票数 1
EN

Stack Overflow用户

发布于 2011-08-06 20:45:37

最重要的部分是编写易于阅读的代码。例如,使用像foo()bar()这样的函数名是完全无用的,所以很难说你想要比较这两个中的哪一个更好。

除此之外,if示例也有一些相当大的缺陷:

  • if是一种语言构造,但你可以像使用函数一样使用它。
  • 你可以在if条件中添加垂直空格。这可能会使内容难以阅读,因为空间会影响视觉焦点。

另一种建议是:

代码语言:javascript
复制
if (foo()) {

但是你想要比较这两者:代码总是在它的上下文中。并且可读代码使用它的上下文。你的两个建议都是有效的,关键是你已经可以从代码中读取含义:

代码语言:javascript
复制
   conditionMet() && gotForIt();

   if (conditionMet()) goForIt();

你自己决定吧。只是不要把一行和另一行混在一起,所以在你的整个代码中都要保持一种风格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6966742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档