PHP7取餘數 取模運算與陣列負值問題

最近嘗試將一段Python代碼轉換成PHP網頁代碼來運行,
先用py2php在Python2.7環境下轉換Python3的代碼為PHP7,
處理中文字串轉換亂碼的問題後將原本input()函數改用html表單post到PHP代碼上,
PHP網頁此時接近可以運行的狀態,
但仍要解決原本Python相連字串用""雙引號與,逗點的方式連結,
改用PHP變更成''單引號與.小圓點連結字串才能運作。

但PHP較沒有Python來的靈活,
上一段的做法通常還會遇到陣列在負數無法循環,
比方說[0-9]共10個陣列項目,在Python的[-1]應等同於[9],[-2]應等同於[8],
PHP7只能允許陣列值為正數,這邊還需要增加判斷式才行。
(PHP8可能有所改善)

另外,部份運算兩語言也有差別,
Python在兩數值取餘數用%符號可以正常取模數,
但PHP用%只能取正餘,負值取餘只會顯示原本的負值,
參考論壇上的解決方法如下,

在Python時 >>>

    -6 % 10 此時餘數回傳 4 正常

在PHP時>>>

    -6 % 10 ; 此時餘數回傳 -6 錯誤

論壇PHP修正為>>>

    ( $dividend % $divisor + $divisor ) % $divisor;

    ( -6 % 10 + 10 ) % 10 ; 此時餘數回傳 4 方為正常。


2022/3/4 更新

py2php在中文詞彙轉換時容易出現亂碼問題待解決。

留言

這個網誌中的熱門文章

Redmi紅米 Note4x (Qualcomm SD625)啟用VoLTE功能

紅米手機MIUI設置SD卡為延伸儲存空間