PHP8.1新特性之字符串解包数组/array_is_list
hi,我是温新,一名PHPer
Array unpacking support for string-keyed arrays
PHP7.4中已经可以对数组进行解包,但只适用于数组键。
php8.1
<?php
$arr1 = [1,2, 'a'=>['name'=>'lucy']];
$arr2 = [3,4, 'a'=>['age'=>19]];
$arr = ['a'=>0, ...$arr1, ...$arr2];
var_dump($arr);
var_dump(array_merge($arr1, $arr2));
小于php8.1
$arrayA = ['a' => 1];
$arrayB = ['b' => 2];
$result = array_merge(['a' => 0], $arrayA, $arrayB);
// ['a' => 1, 'b' => 2]
array_is_list
array_is_list
严格检查数组中的键是否按照数字顺序排列。
$arr = ['a', 'b', 'c'];
var_dump(array_is_list($arr)); // true
$arr = [1=>'a', 'b', 'c'];
var_dump(array_is_list($arr)); // false
$arr = [0=>'a', 'b', 'c'];
var_dump(array_is_list($arr)); // true
$arr = [0=>'a', 2=>'b', 'c'];
var_dump(array_is_list($arr)); // false
array_is_list严格严格数组中键的值是否从0开始排序且不能中断。
静态数据一致性
php8.1
<?php
class Num
{
public static function incr()
{
static $num = 0;
$num++;
var_dump($num);
}
}
class Test extends Num
{
}
Num::incr(); // 1
Num::incr(); // 2
Test::incr(); // 3
Test::incr(); // 4
小于php8.1
<?php
class Num
{
public static function incr()
{
static $num = 0;
$num++;
var_dump($num);
}
}
class Test extends Num
{
}
Num::incr(); // 1
Num::incr(); // 2
Test::incr(); // 1
Test::incr(); // 2
坚持不懈
每天进行一步点,就一点点
请登录后再评论