if(!($whatever && what()) do_stuff...
這能有一些更直觀等取代?
if(!($whatever && what()) do_stuff...
這能有一些更直觀等取代?
function not($OriginalCheck)
{
return !$OriginalCheck;
}
function is($OriginalCheck)
{
return !!$OriginalCheck;
}
應該做的正是:)
有幾種寫檢查方式:
if(!($whatever && what()) do_stuff...
if(!$whatever || !what()) do_stuff...
if(($whatever && what()) === false) do_stuff...
if((!$whatever || !what()) === true) do_stuff...
if($whatever === false || what() === false) === true) do_stuff...
所有這些方式都是直觀的,並通過了著名的編程世界。
不值得寫一個自定義函數:)如果沒有標準的php函數/運算符,那我就用`!` – Alex 2011-02-06 12:09:29
一種選擇是讓布爾表達式更加明確:
if(($whatever && what()) == false) // do_stuff...
或者,通過實現自定義not()
:
function not($expr) {
return $expr == false;
}
if(not($whatever && what())) // do_stuff...
不,它不能。有關邏輯運算符的語言參考,請參閱http://www.php.net/manual/en/language.operators.logical.php,並導航以查找其他別名。
但請注意,&&
和||
的優先順序與and
和or
不同。
沒有替代!
,但它可以寫成少直觀:
if ($whatever - 1) {
}
如果該問題的原因是!
是太容易忽視,但not
更加明顯;然後另一種替代符號是:
if (!!! $whatever) {
如果這仍然看起來簡單,只需使用:
if (~$whatever & 1) {
二元運算總是看起來很專業;)
這已經足夠直觀。幾乎任何編程語言的開發人員都知道「!」操作符。 – zerkms 2011-02-06 12:08:49
而不是爲你提供更直觀的*,你也可以習慣'!`,因爲對於其他人來說這非常直觀。 ;-) – Tomalak 2011-02-06 12:10:29
不都是一樣的 – 2011-02-06 12:10:58