我有一些以前程序员的代码,我有点困惑它的含义。if语句为:
if( !$this->report = $this->get_report()){
... do something }
我习惯于看到if语句带有一些";truthy;条件或比较运算符。
这是说如果$this->报告为false或不存在,然后使其=$this_.get_report((?
if( !$this->report = $this->get_report())
这条线做了两件事:
- 将
$this->get_report()
的值赋给$this->report
- 验证该值是否与
false
比较松散
只有当它确实比较(与false
松散(时,它才会运行块do something
另一个松散比较的示例:
<?php
if(!$foo = null) {
// going to process this block
}
$foo
被分配了一个null
值null
与PHP中的false
比较松散null == false
松散比较null !== false
严格比较
!false
导致true
,因此块被执行