根據此,飛船操作者(<=>)回傳“的整數小于,等于或大于零,取決于如果$ x小于,等于或大于$ y大,”。
嘗試一下,它似乎只回傳 -1、0 或 1。
總是這樣嗎?
uj5u.com熱心網友回復:
從PHP 的新功能頁面:
飛船操作員
spaceship 運算子用于比較兩個運算式。
它回傳-1,0或1when$a分別小于、等于或大于$b。
比較是根據 PHP 的常用型別比較規則進行的。
所以,只有-1, 0or1可以從<=>
uj5u.com熱心網友回復:
在當前的實作總是回傳正常輸入這些值。當它比較兩個數字時,它使用這個宏對結果進行歸一化:
#define ZEND_NORMALIZE_BOOL(n) \
((n) ? (((n)<0) ? -1 : 1) : 0)
(不過,它確實為擴展提供的物件提供了自己的實作,因此它們可以回傳不同的值。)
但是,官方檔案只保證“一個整數小于、等于或大于零”。它的預期用途是在諸如usort 之類的函式中尋找這些值。
由于這是一個常見的約定,如果您正在撰寫自己的代碼,那么堅持這一點可能比明確檢查 -1 和 1 更好。
如果實作發生變化,或者您需要與不同的比較源進行互動,那么這不太可能導致意外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370100.html
