2011-02-06 97 views
2

if(!($whatever && what()) do_stuff...

這能有一些更直觀等取代?

+6

這已經足夠直觀。幾乎任何編程語言的開發人員都知道「!」操作符。 – zerkms 2011-02-06 12:08:49

+3

而不是爲你提供更直觀的*,你也可以習慣'!`,因爲對於其他人來說這非常直觀。 ;-) – Tomalak 2011-02-06 12:10:29

+0

不都是一樣的 – 2011-02-06 12:10:58

回答

4
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...

所有這些方式都是直觀的,並通過了著名的編程世界。

+2

不值得寫一個自定義函數:)如果沒有標準的php函數/運算符,那我就用`!` – Alex 2011-02-06 12:09:29

1

一種選擇是讓布爾表達式更加明確:

if(($whatever && what()) == false) // do_stuff... 

或者,通過實現自定義not()

function not($expr) { 
    return $expr == false; 
} 

if(not($whatever && what())) // do_stuff... 
0

沒有替代!,但它可以寫成直觀:

if ($whatever - 1) { 
} 

如果該問題的原因是!太容易忽視,但not更加明顯;然後另一種替代符號是:

if (!!! $whatever) { 

如果這仍然看起來簡單,只需使用:

if (~$whatever & 1) { 

二元運算總是看起來很專業;)

相關問題