php作为弱类型语言的坑点

栏目: PHP · 发布时间: 6年前

内容简介:近日,怀着新语言的一门心思,在键盘上敲敲打打。golang的强类型有时候着实让人有点摸不着头脑(对于习惯了php的老人来说)下面是一个golang的例子

近日,怀着新语言的一门心思,在键盘上敲敲打打。golang的强类型有时候着实让人有点摸不着头脑(对于习惯了 php 的老人来说)

下面是一个golang的例子

php作为弱类型语言的坑点

再看看命令行

php作为弱类型语言的坑点

虽然if中间的var赋值user挺蠢的,而且就golang的强类型申明user类型之后再来var显得很小白,但是梳理整个逻辑,发现了一个重要的信息点,甚至是背心出了一身冷汗!

重现:最开始我想的是ResponseSuc里头统一返回user,所以就用了 if else 做user的数据处理,按照php的逻辑,第一个if里头不用var,直接 user=**** 就行了,根本不用管类型。(所以var的出现,就是因为去掉var之后限制了user的类型而产生,为了语法不报错而不经过大脑,蠢哭)

结果看到了,就是第一个user打印出来了一大坨数据,而最下面的user没有数据。究其原因,就是因为两个user根本不是一个玩意儿

反思

php为弱类型语言,这种非同类型赋值简直写起来不要太舒服。然而golang的语法和php对比,终于让我发现,弱类型的严重缺陷,见下图

php作为弱类型语言的坑点

golang中if之前就已经开始报错,因为是非同类型的比较,程序根本运行不起来

php作为弱类型语言的坑点

php里头可见 0=="0" 是true的

同理,可以验证 null , "" 等特殊的玩意儿

那么有什么影响呢

php作为弱类型语言的坑点

好吧,虽然用了谷歌,还是追到了腾讯的ip上 PHP弱类型在实战中导致的漏洞总结

附上php的类型比较图 php.net

最后,帖子浏览完,感觉大部分PHP系统可能都在裸奔!

友情链接 《刑法》案例查询


以上所述就是小编给大家介绍的《php作为弱类型语言的坑点》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Haskell School of Music

The Haskell School of Music

Paul Hudak、Donya Quick / Cambridge University Press / 2018-10-4 / GBP 42.99

This book teaches functional programming through creative applications in music and sound synthesis. Readers will learn the Haskell programming language and explore numerous ways to create music and d......一起来看看 《The Haskell School of Music》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具