% 2 aşağıdaki php ne yapar?
$id=(int)@$_REQUEST['id'];
echo ( !($id%2) )?
"{'id':$id,'success':1}":
"{'id':$id,'success':0,'error':'Could not delete subscriber'}";
%
modulus operator olduğunu. % 2
iki ile bölme sonra bu nedenle kalan, yani 0 her iki durumda ($id
bile olarak) ya da 1 (halinde $id
tek olarak).
Ifadesi !($id % 2)
(0 false temsil eder ve her şeyi sıfırdan gerçek temsil ettiği) bir boolean değerine otomatik dönüştürme kullanır ve sonucu olumsuzlar. $id
bile oldu ve false
eğer garip Yani bu ifadenin sonucu doğrudur. Bu da ne echo
baskılar var belirler. Görünüşe $id
sinyalleri başarı için daha da değer.
Biraz daha ayrıntılı ama açıklamaya yukarıdaki yazmak için yolu anlamak için belki daha kolay olurdu:
if ($id % 2 == 0)
echo "{'id':$id,'success':1}";
else
echo "{'id':$id,'success':0,'error':'Could not delete subscriber'}";
Ama bu üçlü operatörü ile tüm eğlence ganimet. Yine de, ben değil !($id%2)
olarak değil ($id % 2 != 0)
olarak durumu yazılı olurdu. Mis-kullanarak boolean değerleri için tamsayılar bazen hataları teşhis etmek için bazı zor yol açar :-)
%
işleç olduğunu. Değeri $id
bile ve eğer So $id % 2
1
0
dönersen değer garip.
O Başarı başka hata Modülü 2 bulunuyor Temelde ise, PHP için Modulus section Çıkış