我剛剛在一個網站上看到了這個源代碼,但我不知道它是什麼意思,誰能告訴我它是什麼?非常感謝。一個簡單的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