PHP 语句这样写可以吗?

下面这种写法

empty($dinfo) && exit("该条目不存在!");

和这种写法

 if(empty($dinfo)){
   exit("该条目不存在!");
 }

哪一种更好?

阅读 5.8k
11 个回答

相对来说第二种更合适
&& 短路这种特性感觉还是少用
一些奇迹淫巧最好不要使用
代码毕竟还是给人看的

用if一目了然,比如页面控制器开头常用的逻辑,如果没有定义根目录常量,就进行定义.

defined('APP_ROOT') || define('APP_ROOT', __DIR__);
if (!defined('APP_ROOT')) define('APP_ROOT', __DIR__);

如果你是设计在框架底层的代码,建议:

empty($dinfo) && exit("该条目不存在!");

如果是项目,要做维护的话,建议:

if(empty($dinfo)){
   exit("该条目不存在!");
}
!empty($dinfo)?:exit("该条目不存在!");

确定这代码只有你自己一个人看的话可以写第一种,
要是别人也有可能看的话还是推荐第二种更易于阅读的。

对于第一种,别忘了有些语言的 &&从右向左计算的。
要是个多语言使用者很可能就得懵一会。

用三目运算符不也挺好的吗

两种都可以用, 但是为了维护方便建议第二种,

都很好啊 看个人习惯啊

我也提供一个:

if(!@$dinfo) exit("该条目不存在!");
新手上路,请多包涵

我经常用你这个写法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题