2017-06-14 76 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