为什么 WordPress 至少使用 PHP 7.4

先说一下 WordPress 最近这几个版本对 PHP 版本要求的改进,首先WordPress 在 6.3 版本彻底放弃对 PHP 5 的支持,然后WordPress 6.4 推荐使用 PHP 8.1 或 8.2WPJAM Basic 升级到 6.4 之后,也最低要求 PHP 7.4。

那么为什么要至少使用 PHP 7.4,因为使用 PHP 7.4 开发太爽了,怎么爽呢,我简单说一下:

新函数

PHP 7.3 引入 is_countable()array_key_first(), array_key_last() 这三个函数,在函数处理的时候使用会带来非常大的便捷。不过这个当然不是重点,WordPress 内置了这三个函数的兼容版本,意义是,任何版本的 PHP 都可以使用。

在数组中展开数组

Argument unpacking(参数解包)是在 PHP 5.6 中引入的语法,它允许开发者在函数调用时使用展开运算符 ... 来传递数组的元素作为多个参数,这对于动态函数调用非常有用,尤其是当你不知道你将传递多少参数时:

function wpjam_ob_get_contents($callback, ...$args){
	ob_start();

	call_user_func($callback, ...$args);

	return ob_get_clean();
}

PHP 7.4 进一步增强了这个特性,允许开发者在数组中使用展开运算符,它会比使用 array_merge() 函数合并数组速度更快,因为展开运算符 (...) 它是个语法结构而不是一个函数。

下面是 WPJAM Basic 处理字段 class 的代码,这是使用 array_merge 合并数组:

$class	= array_merge(wp_parse_list($this->wrap_class), [$this->disabled, $this->readonly, ($this->is('hidden') ? 'hidden' : '')]);

改成在数组中展开数组方法之后:

$class	= [...wp_parse_list($this->wrap_class), $this->disabled, $this->readonly, ($this->is('hidden') ? 'hidden' : '')];

箭头函数(短闭包)

在对于 PHP 而言,匿名函数有点冗长并且难以使用和维护的,所以 PHP 7.4 推出了更短并且语法更简洁的箭头函数(短闭包),能够在很大程度上使我们的 PHP 代码更简洁。

$schema	= []; // 前面计算获取

// 使用传统的匿名函数
$value	= array_map(function($item) use($schema){
	return $this->sanitize_value($item, $schema);
}, $value);

// 使用 7.4 引入的箭头函数
$value	= array_map(fn($item) => $this->sanitize_value($item, $schema), $value);

可以看出箭头函数更加简洁,只用一行代码即可重写,不需要使用 return,并且在父作用域里定义的变量被隐式捕获(隐式作用域绑定)了,即无需使用 use 关键字。

空合并赋值操作符

空合并赋值运算符是一种缩写方式,它结合了 isset() 检查和三元运算符,下面的例子如果 $product 数组的 id 是否设置了,如果没有则设置为默认值 0 ,我们可以看看 PHP 版本之间代码的演变:

// PHP 7.0 之前
$product['id']	= isset($product['id']) ? $product['id'] : 0;

// PHP 7.0
$product['id']	= $product['id'] ?? 0;

// PHP 7.4
$product['id']	??= 0;

很明显,PHP 7.4 代码是最简洁的。

总结

综上所述,这三点就可以知道为什么使用 PHP 7.4,人生苦短,编程开心最重要。


©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。