首页 » Web前端 » php8特点技巧_PHP8的这4个新特点可能让你写出更差劲的代码

php8特点技巧_PHP8的这4个新特点可能让你写出更差劲的代码

访客 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

PHP8已经发布快两年多了,这个版本为PHP带来了大量的新功能。
近年来,PHP大大提高了性能,并强化对OOP(面向工具程序设计)的利用,但仍旧,PHP中也有很多值得慎重的考虑的用法。
新版本有很多好的特性,比如JIT编译器,他可以提高性能、提升布局函数属性、构造化元数据。
但个中也有一些新功能,会助长不良的代码编写,以下是五个不良做法和例子。

空安全运算符

该运算符能够在繁芜的逻辑判断中,节省大量的代码。
它很随意马虎理解:如果链式调用中的某些内容为空,则直接返回为空。
它能够节省精力和代码行数,避免了繁芜的调用。
在其它编程措辞中也有这种用法,比如:JavaScript、C#。
但这个用法怎么会变差劲呢?

php8特点技巧_PHP8的这4个新特点可能让你写出更差劲的代码

/ PHP 7 /$country = null;if ($session !== null) { $user = $session->user; if ($user !== null) { $address = $user->getAddress(); if ($address !== null) { $country = $address->country; } }}/ PHP 8 /$country = $session?->user?->getAddress()?->country;

在上面的例子中,空运算符被过度的利用了,等须要调试的时候,你就不知道详细哪个东西才是Null,为此可能须要付出更多的精力去追踪问题:到底那个是Null?是session?user?getAddress方法?还是country。

php8特点技巧_PHP8的这4个新特点可能让你写出更差劲的代码
(图片来自网络侵删)

那该当如何避免掉进坑里呢?也有很多办法:

尽可能使定义类型,如果你知道某个变量不能为空,则应该为它声明类型。
限定空安全运算符的链式调用次数,比如最多两次。
用健全的代码处理Null的情形,尽可能防止调用空安全运算符命名参数

一个方法最多该当定义几个参数呢?我们在写代码的时候,会向方法里添加越来越多的参数,每个人都会轻易的的这样做。
有新的逻辑?直接增加一个参数,然后用if判断一下就可以了。
但这是最糟糕的做法。
比较好的做法是,把这些参数封装在工具中。
以是我们可以在团队中做个规定,最多传入三个参数,超过三个则必须定义在工具中。
在PHP8中,添加了命名参数的特性,这样,增加更多的参数会更方便,开拓职员可能更不愿意通过工具通报参数(可以通过getter或setter方法或断言验证参数),而是试图添加一个新的参数。
如果没有严格的标准,方法的迭代就有可能提高代码的繁芜性。
为了防止这种情形:

在团队中定义代码规范,严格限定参数数量始终将参数和逻辑封装在工具中联合类型

在新的版本中,PHP朝着更严格的类型化方向发展。
表明他正在变得成熟,并且抛弃一些不良的行为和做法。
命名空间、特色、标量类型声明、返回类型声明、匿名类等,都表明了这一点。
联合类型随之而来:

public function __construct( private int|float|string|null $number ) {}

但是这有可能是PHP8中最糟糕的功能之一。
它明显的降落了接口的实践。
它并没有逼迫开拓职员创建有抽象思维的接口,而是让他们随意的发挥。
联合类型可能会使一些情形变得更好,但彷佛场景并不多。
如果你打算将老的程序迁移到PHP8,那么联合类型可能会很好用,但此时你该当拆分代码而不是添加更多奇怪的类型。
你可以在团队中实行严格的代码规范,联合类型不要超过两个类型。

稠浊类型

这可能是最好的,也可以是最坏的东西。
如果我们认为联合类型不足好,那么稠浊类型便是彻底的糟糕的用法。

public function __construct( private mixed $number ) {}

相称于利用一个非常繁芜的联合类型 。

public function __construct( private array|bool|callable|int|float|null|object|resource|string $number ) {}结尾

如果我们查看PHP开拓职员的RFC,我们会看到PHP开拓者们是如何努力的理解新特性,以及为什么要添加这些新特性。
但仍旧,我们会看到有很多的开拓职员会滥用这些特性。

总的来说,PHP8增加了一些危险的特性,可能会让缺少开拓履历的开拓职员利用差劲的做法。

但仍旧,对付新手来说,可能会有一些坑,但如果你有足够的履历,这些都是很棒的特性。

不过这只是一些特新的糟糕用法的例子,并不能说PHP变得更差劲了。
任何措辞都能找到这样的例子。

但是换一种思维,措辞该当更灵巧,如何写出更好的代码,是程序员的任务,而不是“措辞的任务”。
因此不是PHP许可编写差劲的代码,而是每个人都有缺点的利用习气。

PHP是用户驱动的措辞,因此PHP开拓者们,是在实现市场须要的功能。
不过PHP的开拓者也应该对PHP的发展有一个明确的方向和思路。
如此灵巧的用法,可能会让更多的人的编码风格变得更不同,可能会影响到措辞的凝聚力。

参考原文: https://medium.com/efesent-solutions/5-new-features-in-php-8-that-promote-bad-practices-6b74ce40d2f2

原文标题:PHP8的这4个新特性可能让你写出更差劲的代码

原文地址:https://phpreturn.com/index/a63a10f794b0d8.html

原文平台:PHP武器库

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站许可任何形式的转载/引用文章,但必须同时注明出处。

标签:

相关文章

房山第一探寻历史文化名区的魅力与发展

房山区,位于北京市西南部,历史悠久,文化底蕴深厚。作为北京市的一个重要组成部分,房山区的发展始终与首都的发展紧密相连。房山区积极推...

Web前端 2025-02-18 阅读0 评论0

手机话费开钻代码数字时代的便捷生活

我们的生活越来越离不开手机。手机话费作为手机使用过程中的重要组成部分,其充值方式也在不断创新。手机话费开钻代码应运而生,为用户提供...

Web前端 2025-02-18 阅读0 评论0

探寻专业奥秘如何查询自己专业的代码

计算机科学已成为当今社会不可或缺的一部分。掌握一门专业代码对于个人发展具有重要意义。面对繁杂的学科体系,如何查询自己专业的代码成为...

Web前端 2025-02-18 阅读0 评论0