php做爲弱類型語言的坑點

近日,懷着新語言的一門心思,在鍵盤上敲敲打打。golang的強類型有時候着實讓人有點摸不着頭腦(對於習慣了php的老人來講)
下面是一個golang的例子php

clipboard.png

再看看命令行golang

clipboard.png

雖然if中間的var賦值user挺蠢的,並且就golang的強類型申明user類型以後再來var顯得很小白,可是梳理整個邏輯,發現了一個重要的信息點,甚至是背心出了一身冷汗!

重現:最開始我想的是ResponseSuc裏頭統一返回user,因此就用了if else作user的數據處理,按照php的邏輯,第一個if裏頭不用var,直接user=****就好了,根本不用管類型。(因此var的出現,就是由於去掉var以後限制了user的類型而產生,爲了語法不報錯而不通過大腦,蠢哭)ui

結果看到了,就是第一個user打印出來了一大坨數據,而最下面的user沒有數據。究其緣由,就是由於兩個user根本不是一個玩意兒spa

反思

php爲弱類型語言,這種非同類型賦值簡直寫起來不要太舒服。然而golang的語法和php對比,終於讓我發現,弱類型的嚴重缺陷,見下圖.net

clipboard.png

golang中if以前就已經開始報錯,由於是非同類型的比較,程序根本運行不起來命令行

clipboard.png

php裏頭可見0=="0"是true的code

同理,能夠驗證null,""等特殊的玩意兒ip

那麼有什麼影響呢get

clipboard.png

好吧,雖然用了谷歌,仍是追到了騰訊的ip上PHP弱類型在實戰中致使的漏洞總結it

附上php的類型比較圖php.net

最後,帖子瀏覽完,感受大部分PHP系統可能都在裸奔!

友情連接《刑法》案例查詢

相關文章
相關標籤/搜索