%2在下面的php中做了什么?
$id=(int)@$_REQUEST['id'];
echo (!($id%2))?
"{'id':$id,'success':1}":
"{'id':$id,'success':0,'error':'Could not delete subscriber'}";
%2在下面的php中做了什么?
$id=(int)@$_REQUEST['id'];
echo (!($id%2))?
"{'id':$id,'success':1}":
"{'id':$id,'success':0,'error':'Could not delete subscriber'}";
%
是modulus operator。 % 2
因此是除以二后的余数,因此无论是0(如果$id
是偶数)或1(如果$id
是奇数)。
表达式!($id % 2)
使用自动转换为布尔值(其中0表示false并且所有非零值表示true)并且否定结果。因此,如果$id
是偶数,那么表达式的结果为真,如果奇数,则表达式的结果为false
。这也决定了什么echo
在那里打印。显然,$id
的偶数值表示成功。
稍微更复杂,但也许更容易理解的方式来写上面的说法应该是:
if ($id % 2 == 0)
echo "{'id':$id,'success':1}";
else
echo "{'id':$id,'success':0,'error':'Could not delete subscriber'}";
但是,败坏所有三元运算符的乐趣。尽管如此,我还是把这个条件写成了!($id%2)
,而不是($id % 2 != 0)
。误用整数布尔值,导致一些难以诊断的错误,有时:-)
%
is the modulo operator.所以$id % 2
将返回0
如果$id
值均匀,1
如果值是奇数。
这是检查ID是否是偶数。如果它是偶数,那么PHP会将0评估为false。
退房的Modulus section为PHP,基本上,如果它的模数2的成功别人错误
正如有人说,%
将由数除以之后给你剩下。实际上,如果id是偶数(或不是数字,或未定义(!!)),则该代码块将回显“成功= 1”,如果id是奇数,则代码“成功= 0”。