%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」。