我只有一个问题......我在各种PHP脚本中看到这种编码风格,并不明白这意味着什么......有人可以解释一下这个^^
示例代码:
empty($config) OR $this->initialize($config);
或者
$url AND $this->create($url);
答案 0 :(得分:3)
这是一种执行null / true / false检查并有条件地执行某些代码的方法......所以简而言之,它只是if / then / else的简短形式。
我不会坚持这种“短”符号,因为它模糊了实际逻辑操作和程序控制流程之间的界限
答案 1 :(得分:1)
关于OR运算符:如果第一个条件为真,那么PHP将无需执行第二个:知道第一个为真就足以返回true。
您可以为此做同样的事情(当然,除了它是相反的:如果第一个条件为假,PHP将不会解释为第二个)
这个
empty($config) OR $this->initialize($config);
是
的快捷方式if ( ! empty($config)) { //(BTW I guess it should be if (empty($options)) no? )
$this->initialize($config);
}
并且
$url AND $this->create($url);
代表
if ( ! $url) {
$this->create($url);
答案 2 :(得分:1)
这是php的短路方面,在OR
中,如果第一个语句为真,则下一个语句将被忽略,对于AND
,如果第一个语句为假,则为{一个将被忽略
http://php.net/manual/en/language.operators.logical.php
在你的情况下,第一个说
如果$ config不为空,则初始化
第二个说
如果设置了$ url,则在当前对象上调用create方法
答案 3 :(得分:0)