跳转至

PHP 7.3.x#

说明

本文部分内容根据官网进行删减,仅整理常用特性。

1. 新特性#

1.1. 数据解析支持引用#

[&$a, [$b, &$c]] = $d;对应的 list() 也一样支持。

2. 新函数#

2.1. array_key_first()#

获取数组的第一个键

$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

print_r($firstKey);  // a

警告

有几种方法可以为 PHP 7.3.0 之前的版本提供此功能。可以使用 array_keys(),但是效率可能很低。也可以使用 reset()key(),但这可能会更改内部数组指针。一个有效的解决方案,它不更改内部数组指针,写为

<?php
if (! function_exists('array_key_first')) {
    function array_key_first(array $arr)
    {
        foreach($arr as $key => $unused) {
            return $key;
        }

        return null;
    }
}

2.2. array_key_last()#

获取数组的最后一个键

2.3 is_countable()#

验证变量的内容是否为可计数的值

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

3. 废弃的功能#

3.1 大小写不敏感的常量#

大小写不敏感的常量声明现已被废弃。将 TRUE 作为第三个参数传递给 define() 将会导致一个废弃警告。大小写不敏感的使用(在读取时使用一个与声明时不同的大小写方式)也已被废弃。

3.2 在字符串中搜索非字符串内容#

废弃:将一个非字符串内容传递给字符串搜索函数。 在将来所有待搜索的内容都将被视为字符串,而不是 ASCII 编码值。如果需要依赖这个特性,你应该 要么显示地进行类型转换(转为字符串),或者显示地调用 chr()。 以下是受到影响的方法:


原文


最后更新: 2020年5月31日 23:18:16