2017-06-14 85 views
1

isset得到變量,0我有這樣的代碼:三元Elvis操作符

$var=(isset($_GET[var])?$_GET[var]:1); 

我想應該是這樣的:

  • 如果URL沒有VAR(file.php),然後是$ var = 1。
  • 如果url有var(file.php?var = 0),$ var = 0。

我得到的是:

  • 如果URL沒有VAR(file.php),然後是$ var = 1。
  • 如果url有var(file.php?var = 0),$ var = 1。

$ _GET [var] is set!它是0,爲什麼我得到1?

回答

3

關閉。你的括號只是一點點。並且是var常數?

$var = isset($_GET['var']) ? $_GET['var'] : 1; 

你要麼意味着字符串變量$var我想象的'var'

+3

真的對括號無關緊要。 – Qirel

+0

@Qirel,謝謝。很高興知道。假設這將是一個語法錯誤,但確實奇怪。 – ficuscr

+0

如果這是一個語法錯誤,它根本就不會起作用;-)當然,不需要圍繞整個三元組的括號,但它也不會造成任何影響。 – Qirel