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

疑问

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

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

个人看法

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

光年之外
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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年前 评论

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