$ Id% 2% 2 nedir

5 Cevap php

% 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'}";

5 Cevap

% 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.

Kimliği bile ise bu kontrol ediyor. Hatta varsa, o PHP bu 0 false olarak değerlendirecektir.

O Başarı başka hata Modülü 2 bulunuyor Temelde ise, PHP için Modulus section Çıkış

Diğerleri de söylediğim gibi, % bu sayısına bölünmesi sonra size kalan verecektir. Id tek ise kimliği bile (ya da sayı değil, ya da tanımlı değil (!)) Ve "= 0 başarı" ise, aslında bu kod bloğu "başarı = 1" echo olacaktır.