新手在这里,我不知道php中的($z++ % 2) ? "a" : "b";
是什么意思,这段代码给了我旧代码中的下一个警告
PHP消息:PHP警告:
中遇到非数字值
答案 0 :(得分:2)
$z = 5;
echo ($z++ % 2) ? "a" : "b";
(5%2)= 1 =真
=>打印
然后z成为6
答案 1 :(得分:2)
$z++
表示使用后$z
增加值$z++ % 2
表示剩余的$z/2
,并在$z
$z%2 == 0
,则获得b
,如果$z%2 == 1
,则获得a
警告显示,因为$z
之前未声明。请在您的代码前添加以下行:
$z = 0;
答案 2 :(得分:1)
此代码评估为" a"当$ z为奇数且" b"当$ z为偶数时,然后将$ z递增1。
$z++
将$ z递增1,但仅在表达式中使用它后(请注意,PHP手册指出评估顺序未定义,因此可能会在版本之间发生变化。请参阅example 2。 )
% 2
模2(奇数时为1,偶数为0)
? :
是ternary operator
当$ z为奇数($z++ % 2) == 1
时评估为真,结果为" a"。
当$ z为($z++ % 2) == 0
时,其评估为false,结果为" b"。
警告可能是因为当执行此代码时,$ z未声明或不是数字(例如字符串)。 %和++运算符仅对数字有效。
答案 3 :(得分:0)