我用很短,如果在PHP中,當使用這個例子如果在PHP中true段落爲空時如何工作短小?
$a = 100 ? 200 : 300;
$a
等於,但我不知道怎麼下面的示例工作。
$a = 100 ? : 300;
此代碼
$a
等於後
。
爲什麼?
我用很短,如果在PHP中,當使用這個例子如果在PHP中true段落爲空時如何工作短小?
$a = 100 ? 200 : 300;
$a
等於,但我不知道怎麼下面的示例工作。
$a = 100 ? : 300;
此代碼
$a
等於後
。
爲什麼?
在PHP手冊:http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
由於PHP 5.3,有可能離開了三元運算的中間部分。表達
expr1 ?: expr3
將返回EXPR1如果expr1的值爲TRUE,而表達式3否則
讓我解釋一下這樣你就可以瞭解差異性。
When you use one = it's assigning value,
When you use == is checking if same value and
When using === is checking value + type also.
所以,在你的榜樣$a = 100 ? 200 : 300;
它是這樣的:
如果$一個可以設置爲100(可),那麼真正的(所以200)。
在你的第二個例子:$a = 100 ? : 300;
同樣你assinging $ a到100,這是真的,那麼它仍然是100你的真實情況是空的。
您錯誤地將'$ a'的值設置爲100而不是檢查它是否等於100.'$ a == 100? 200:300;' –
如果這是您的常見錯誤,請嘗試使用更多Yoda條件:'100 == $ a'。如果您錯誤地輸入了'100 = $ a? 200:300'會顯示錯誤。 – Kempeth