PHP7 强类型的意义何在?有什么用?解决了什么问题?

疑问

对于 PHP7 引入强类型,这个强类型有什么用?意义何在?解决了什么问题?

查查资料,结合自己的经验,这功能玩意好像是个然并卵的功能

个人看法

个人对 PHP7 引入强类型,并不看好这个功能,弱类型用强类型方式写,放弃优势的同时对开发还并没什么实际性帮助

光年之外
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 17

我觉得挺好的。强类型可以限制变量参数类型,减少错误率。起码phpstorm能准确提示类型,方便开发

4年前 评论
绝缘体菜狗

为了 JIT 那个版本做铺垫,到时候要用这个功能,可能会强制要求强类型。

4年前 评论

你如果估计这个项目要10个人协同开发,开发完了要不断加功能,至少要撑10年的时候,强类型至少能保证一年后这个代码你虽然看不懂,但是知道它返回值是什么。如果只是做外包,不管维护的那种,我觉得就没必要了。写的开心就好 :relieved:

4年前 评论

@漫天风雨下西楼

1、你说的这个问题完全用不着用强类型来解决

2、你这个例子也可以说是不成立的

4年前 评论

@WangWang 只是为了ide那是没意义的,而且注释在phpstorm一样也是有作用的

4年前 评论

写代码的时候我很喜欢使用===,(int/float////)等等做变量类型的判断和处理。这样的代码“更加可以预测及约束程序的行为”。

php的强类型是可选的,按照自己的习惯和需求来就好。强类型在多人复杂项目中使用有好处,上面有人提高jit,感觉也是一方面,强类型使用jit有加成?

4年前 评论

写自己产品,自己维护就有用了

4年前 评论

@一穷二白

PHP8 引入 JIT,需要对 PHP 做类型推测(JIT 需要知道每个变量属性的具体类型),从理论上讲减少变量类型推测数量可以起到提速的作用

从公开的信息来看,强类型为 PHP8 JIT 做铺垫的可能应该是可以排除的,确定引入 JIT 的时间大概是在 2019-03-30 PHP 8 引入 JIT 支持,以提高 CPU 性能,JIT 对性能的提升是在 CPU 密集型而非 I/O 上。

4年前 评论
lucifergit

我开始用了java 和多人协作后,觉得强类型的好处,编码的时候不可能总去看文档的,靠编辑器能省很大的事。强制规范这个东西确实很有必要,typescript的出现也能说明很多问题。

4年前 评论

代码编写更直观、多人协作友好、IDE友好,这是编程语言的规范。

4年前 评论

PHP 还好,你试试 TypeScript 😊

4年前 评论

每个人观点不一样,你觉得不好用,就不用,自己顺心就好。

我也是近期才用强类型,只是觉得好看顺眼。当我调用一个有参函数的时候,代码自动就会提示我参数类型。如果是个int,我非要传个string,ide当时就会告诉我,错了,错了,你个大沙雕,我要int。

所以就是顺心,没别的了。 :grin:

4年前 评论

减少判断和转换不知道算不算,当参数需要一个 int 类型时,不需要强制转换为 int 类型或者提示报错。

4年前 评论

@FreeMason 也许有别的更好的方式,但是简单的加强制类型就能搞定的,我觉得应该加,何况还有IDE加持,真香~就像以前好多人觉得,php不应该有对象,就应该 html 混着 php 很舒服。何况也没强制要求你用,新引入的特性肯定是用来解决一些问题的,你觉得这玩意对你没用,那就是没用,那你不能否认也许其他人项目有用,你可以翻下 Laravel 的源代码,是不是很多地方都加了强制类型呢~

4年前 评论
Complicated

强类型肯定是好的,只是比较蛋疼的是,如果传入的参数不是要求的类型,就会抛异常,而这种异常是 catch不到的

4年前 评论

意义很大,我就是特别喜欢强类型的一个人。在我写的项目里面,所有类型能定义的我全部都用,就比如写一个 Service 的时候,同事要去调看见上面的参数传入基本就明了了。

4年前 评论

自己写了PHP强类型框架。
https://github.com/hz86/hzfw

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!