define ("num", "12");
echo num%8;
從我從谷歌發現,定義()保持一個恆定值,數值爲num
和12
。所以我的困惑是如何當echo num%8
等於4
?有人可以解釋這一點嗎?PHP定義()值混淆
define ("num", "12");
echo num%8;
從我從谷歌發現,定義()保持一個恆定值,數值爲num
和12
。所以我的困惑是如何當echo num%8
等於4
?有人可以解釋這一點嗎?PHP定義()值混淆
顧名思義,define函數在運行時定義變量。所以define("num", "12")
只是定義了名爲num
的變量,其內容爲"12"
。
從manual:
定義 - 定義了一個名爲恆
之後,你有num % 8
基本上計算爲12 % 8
。此時PHP會將您的String
值轉換爲Integer
的值,因爲您要求%
運營商,該運營商在號碼上運行。因此請參閱echo "12" % 8
,其中也輸出4
。正如你看到的PHP自動轉換的類型,如果你需要它
define("num", "12");
echo gettype(num); // Outputs: string
echo gettype(num + 1); // Outputs: integer
所以:
作爲一個小實驗,看看這個。
最後需要注意的是%
是模運算。它將數字左邊的數字除以右邊的數字,並返回餘數。 所以12/8
是1
和4
的其餘部分。這就是爲什麼它輸出4
。
感謝您的解釋!我現在明白了。 – Zareen
'12/8 = 1,12%8 = 4'這是['modulo operation'](https://en.wikipedia.org/wiki/Modulo_operation)給你分割後的剩餘部分。 –
我明白這一點。但是這個:define(「num」,「12」)真的意味着什麼?是num是持有值12?所以當echo%8實際上是12%8? – Zareen
你爲什麼不[閱讀手冊](http://php.net/manual/en/function.define.php)?在頁面上有示例顯示了這一點。 –