PHP7 强类型的意义何在?有什么用?解决了什么问题?
疑问
对于 PHP7 引入强类型,这个强类型有什么用?意义何在?解决了什么问题?
查查资料,结合自己的经验,这功能玩意好像是个然并卵的功能
个人看法
个人对 PHP7 引入强类型,并不看好这个功能,弱类型用强类型方式写,放弃优势的同时对开发还并没什么实际性帮助
我觉得挺好的。强类型可以限制变量参数类型,减少错误率。起码phpstorm能准确提示类型,方便开发
为了 JIT 那个版本做铺垫,到时候要用这个功能,可能会强制要求强类型。
你如果估计这个项目要10个人协同开发,开发完了要不断加功能,至少要撑10年的时候,强类型至少能保证一年后这个代码你虽然看不懂,但是知道它返回值是什么。如果只是做外包,不管维护的那种,我觉得就没必要了。写的开心就好 :relieved:
@漫天风雨下西楼
1、你说的这个问题完全用不着用强类型来解决
2、你这个例子也可以说是不成立的
@WangWang 只是为了ide那是没意义的,而且注释在phpstorm一样也是有作用的
写代码的时候我很喜欢使用===,(int/float////)等等做变量类型的判断和处理。这样的代码“更加可以预测及约束程序的行为”。
php的强类型是可选的,按照自己的习惯和需求来就好。强类型在多人复杂项目中使用有好处,上面有人提高jit,感觉也是一方面,强类型使用jit有加成?
写自己产品,自己维护就有用了
@一穷二白
PHP8 引入 JIT,需要对 PHP 做类型推测(JIT 需要知道每个变量属性的具体类型),从理论上讲减少变量类型推测数量可以起到提速的作用
从公开的信息来看,强类型为 PHP8 JIT 做铺垫的可能应该是可以排除的,确定引入 JIT 的时间大概是在 2019-03-30 PHP 8 引入 JIT 支持,以提高 CPU 性能,JIT 对性能的提升是在 CPU 密集型而非 I/O 上。
我开始用了java 和多人协作后,觉得强类型的好处,编码的时候不可能总去看文档的,靠编辑器能省很大的事。强制规范这个东西确实很有必要,typescript的出现也能说明很多问题。
代码编写更直观、多人协作友好、IDE友好,这是编程语言的规范。
PHP 还好,你试试 TypeScript 😊
每个人观点不一样,你觉得不好用,就不用,自己顺心就好。
我也是近期才用强类型,只是觉得好看,顺眼。当我调用一个有参函数的时候,代码自动就会提示我参数类型。如果是个int,我非要传个string,ide当时就会告诉我,错了,错了,你个大沙雕,我要int。
所以就是顺心,没别的了。 :grin:
减少判断和转换不知道算不算,当参数需要一个 int 类型时,不需要强制转换为 int 类型或者提示报错。
@FreeMason 也许有别的更好的方式,但是简单的加强制类型就能搞定的,我觉得应该加,何况还有IDE加持,真香~就像以前好多人觉得,php不应该有对象,就应该 html 混着 php 很舒服。何况也没强制要求你用,新引入的特性肯定是用来解决一些问题的,你觉得这玩意对你没用,那就是没用,那你不能否认也许其他人项目有用,你可以翻下 Laravel 的源代码,是不是很多地方都加了强制类型呢~
强类型肯定是好的,只是比较蛋疼的是,如果传入的参数不是要求的类型,就会抛异常,而这种异常是 catch不到的
意义很大,我就是特别喜欢强类型的一个人。在我写的项目里面,所有类型能定义的我全部都用,就比如写一个 Service 的时候,同事要去调看见上面的参数传入基本就明了了。
自己写了PHP强类型框架。
https://github.com/hz86/hzfw