我不理解PHP中的这种编码风格

时间:2012-03-30 07:43:53

标签: php syntax

我只有一个问题......我在各种PHP脚本中看到这种编码风格,并不明白这意味着什么......有人可以解释一下这个^^

示例代码:

empty($config) OR $this->initialize($config);

或者

$url AND $this->create($url);

4 个答案:

答案 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)

所有这些功能都在php.net得到了很好的回答。例如,empty函数和

看看@haltabush的回答,我想我不明白你的问题。