Web*_*ner 2 php ternary-operator
我的PHP版本是5.3.5.
代码:
$num = $_REQUEST['num'] ?: 7;
Run Code Online (Sandbox Code Playgroud)
错误:
Notice: Undefined index: num in C:\path\to\file.php on line 34
Run Code Online (Sandbox Code Playgroud)
有什么建议?
$num = isset($_REQUEST['num']) ? $_REQUEST['num'] : 7;
Run Code Online (Sandbox Code Playgroud)
我假设你想要$_REQUEST['num'],否则7.
小智 6
是不是对短分配代码使用错误抑制好?
我们可以写$ price = @ $ rec ['Product'] ['new']?:$ rec ['Product'] ['old'];
使用@保存我重复相同的变量,并允许我使用捷径三元运算符而不产生通知.
我知道使用@被认为不好,但对于这种特殊情况,我不认为任何事情都可能出错.
谢谢.
小智 5
这是预期的行为; 根据http://bugs.php.net/bug.php?id=45760,?:快捷方式就是:快捷方式.
换一种说法:
$num = $_REQUEST['num'] ?: 7;
Run Code Online (Sandbox Code Playgroud)
的评估方式与:
$num = $_REQUEST['num'] ? $_REQUEST['num'] : 7;
Run Code Online (Sandbox Code Playgroud)
以及所暗示的一切(并且通过线程中的其他答案得到充分解决).