我刚刚在一个网站上看到了这个源代码,但我不知道它是什么意思,谁能告诉我它是什么?非常感谢。一个简单的php逻辑
private function buildCache()
{
!empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
}
我刚刚在一个网站上看到了这个源代码,但我不知道它是什么意思,谁能告诉我它是什么?非常感谢。一个简单的php逻辑
private function buildCache()
{
!empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
}
这是糟糕的代码示例中这是很难支持。
!empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
声明相当于$dummy = !empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
。
有懒的评价,所以,在A && B
,B
将只计算这样的事情是A
是真实的(否则A && B
是明知虚假,没有必要评价B
)。基本上,$x = a() && b()
相同
$x = true;
if(!a()) {
$x = false;
} else {
$x = b();
}
因此,我们可以扩大原有语句
$dummy = true;
if(empty($this->cache_list)) {
$dummy = false;
} else {
$dummy = $this->cache->loadCache($this->cache_list);
}
它,记住,我们不需要$dummy
变量,是一样的
if(!empty($this->cache_list)) {
$this->cache->loadCache($this->cache_list);
}
尽管这段代码比原来的代码长2行,但它更易于理解和维护。你应该编写这个最终版本的代码,并避免写任何类似原始的单行代码。
你可以自己看看:虽然你很难说出最初的单行事件(如此艰难以至于不得不提问这个问题),但很容易看出什么正在进行的最终版本:如果cache_list
不为空,我们调用loadCache
将cache_list
作为参数传递给它(否则,如果cache_list
将为空,则可能无意义调用loadCache
将空值传递给它作为参数)。
这意味着如果$this->cache_list
不为空和$this->cache->loadCache()
函数返回true
我想这是一个快捷方式:
private function buildCache()
{
if(! empty($this->cache_list)){
$this->cache->loadCache($this->cache_list);
}
}
如果有一个 'cache_list',它加载它。 您必须检查类或框架文档以获取有关这些操作的更多信息。
感谢您的回答,这非常明确。谢谢Aurelien&NiftyDude&raheel shan。 – 2012-04-18 06:20:44