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在中文詞彙轉換時容易出現亂碼問題待解決。
留言
張貼留言