PHP 7.3 除了功能特性改进之后,还增加了三个常用的函数:is_countable
, array_key_first
和 array_key_last
,今天我们就讲一下这三个函数和在低版本 PHP 怎么使用这三个函数。
is_countable 函数
在 PHP 7.2 中,用 count()
获取对象和数组的数量。如果对象不可数,PHP 会抛出警告⚠️ ,所以需要检查对象或者数组是否可数:
if(is_array($array) || $array instanceof Countable){ // $array 是可数的 }
PHP 7.3 提供新的函数 is_countable()
来解决这个问题,该函数对数组类型或者实现了 Countable 接口的实例的变量返回 true :
if(is_countable($array)){ // $array 是可数的 }
WordPress 在 4.9.6 版本之后,就在低版本 PHP 环境中实现该函数:
if ( ! function_exists( 'is_countable' ) ) { function is_countable( $var ) { return ( is_array( $var ) || $var instanceof Countable || $var instanceof SimpleXMLElement || $var instanceof ResourceBundle ); } }
所以 4.9.6 之后版本的 WordPress 在任何版本的 PHP 都能使用该函数。建议使用最新PHP7.4版本,因为wordpress官方已经推荐使用最新版本。且新版本更快速,安全性更高。
随便说一下 WordPress 4.9.6 也实现了 PHP 7.1 引入的 is_iterable
函数:
if ( ! function_exists( 'is_iterable' ) ) { function is_iterable( $var ) { return ( is_array( $var ) || $var instanceof Traversable ); } }
array_key_first 和 array_key_last 函数
在 PHP 7.2 中,通过使用 reset()
,end()
和 key()
等方法,通过改变数组的内部指针来获取数组首尾的键和值。现在,为了避免这种内部干扰,PHP 7.3 推出了新的函数来解决这个问题:
$key = array_key_first($array);
获取数组第一个元素的键名
$key = array_key_last($array);
获取数组最后一个元素的键名
下面是一个具体的例子:
// 关联数组的用法 $array = ['a' => 1, 'b' => 2, 'c' => 3]; echo array_key_first($array); // 输出 a echo array_key_last($array); // 输出 c // 索引数组的用法 $array = [1 => 'a', 2 => 'b', 3 => 'c']; echo array_key_first($array); // 输出 1 echo array_key_last($array); // 输出 3
如果我们也想在低版本的 WordPress 中使用这三个函数,怎么处理呢?在低版本 PHP 实现了这两个函数:
if(!function_exists('array_key_first')){ function array_key_first($arr) { foreach($arr as $key => $unused) { return $key; } return null; } } if(!function_exists('array_key_last')){ function array_key_last($arr){ if(!empty($arr)){ return key(array_slice($arr, -1, 1, true)); } return null; } }
本文转载自:WordPress果酱,版权归原作者所有,本博客仅以学习目的的传播渠道,不作版权和内容观点阐述,转载时根据场景需要有所改动。
最新评论