我只是一個問題...我看到這種編碼風格在各種PHP腳本,不明白這是什麼意思...可以有人解釋我這^^我不明白這種編碼風格在PHP
示例代碼:
empty($config) OR $this->initialize($config);
或本
$url AND $this->create($url);
我只是一個問題...我看到這種編碼風格在各種PHP腳本,不明白這是什麼意思...可以有人解釋我這^^我不明白這種編碼風格在PHP
示例代碼:
empty($config) OR $this->initialize($config);
或本
$url AND $this->create($url);
這對OR運算符:如果第一個條件爲真,那麼PHP不會打擾到執行第二:知道1號是真實的足夠重新變成真的。
您可以做同樣的(除了它的過程相反:如果第一個條件爲假,PHP不會解釋第2)
這
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);
這是PHP的短路方面,其中在OR
,如果第一個說法是正確的,下一個將被忽略,併爲AND
,如果第一個語句是假的,下一個會被忽略
http://php.net/manual/en/language.operators.logical.php
在你的情況,第一個說
如果$配置不爲空,然後初始化
第二個說
如果$ URL設置,然後調用當前對象
在創建方法是進行空/真/假支票和有條件地執行一些代碼的方式...總之,這只是if/then/else的簡短形式。
我不會堅持這種「短」的符號,因爲它模糊了真正的邏輯運算和程序控制流
哪裏是代碼的行??? – Baba 2012-03-30 07:46:11
如果你直接訪問$ this-> initialize($ config),你可能會得到未定義的$ config變量錯誤。 – 2012-03-30 07:50:24