2014-01-13 63 views
-2

我是初學者的PHP開發人員,我知道,否則,或者,如果...但我不明白這些:?和其他符號。所以,你可以告訴我這行的意思是:PHP這是什麼意思?

$success = $success ? $b->save(false) : $success; 

if (!success) // shouldn't this be without "!" 
    $transaction->commit(); // this means "do the job, if ok" 
    else 
    $transaction->rollBack(); // this means "don't do the job, if not ok" 

另外,你能告訴我如何調用這個符號,我不知道他們的名字,所以我無法找到他們

+1

谷歌在PHP三元運營商。 –

+0

這是一個三元運算符,它基本上只是一個if else結構 –

+2

@Irakli這是嘗試瞭解代碼的可怕示例;那可能是你扔掉的東西。成功是真的如此回滾?啊。 –

回答

4

這是一個在很多語言很常見,你可以找到這個三元操作例如在JavaScript中,aswell

這是一個if/else的簡寫。

?之前的部分是條件,下一個部分是在條件返回true執行代碼,最後部分(:後),如果它返回false

condition ? if true : if false;

$a = 3 > 5 ? 'three is greater than five' : 'three is lesser than five';

在這種情況下,$a將是three is lesser than five;

我會建議三元操作僅適用於非常簡單的條件/結果,如果沒有,你最終書面方式少維護的代碼,犧牲急促的可讀性

2

教程上述代碼看起來好像來自以前交易的$successtrue,請嘗試$b->save(false),然後將返回的值從$b->save(false)轉換爲$success

$b->save(false)意味着保存而不進行驗證,併成功後保存,將返回true

那麼if部分是很清楚

+0

但是不應該有if(成功){$ transaction-> commit();} – Irakli

+0

如果其他人更有意義東西沒問題,做了提交,但這取決於之前執行的邏輯,你沒有向我們顯示,所以我不能說 – tinybyte

2

這是一個三元運算符,短形式的if語句。

$success = $success ? $b->save(false) : $success; 

相同

if($success) { 
    $success = $b->save(false); 
} else { 
    $success = $success; 
}