PHP7.3.0正式发布两周多,新语法测试总结及数组析构演示

转眼间,PHP7.3.0正式发布已过去两周多,找时间对新语法进行了测试。总体而言,没有增加具有革命性的功能,主要是语法方面更具灵活性。同时,一些无用过时的功能被废弃了。

PHP7.3.0正式发布两周多,新语法测试总结及数组析构演示

[id_1375617941]

1 发布时间

06 Dec 2018

官网PHP7.3新特性

更具灵活性的 `Heredoc` 语法,以及 `Nowdoc` 语法 。

请你提供一下具体需要改写的句子内容,以便我按照要求进行改写。

$data = [[id_1802039136], <<[id_550363065]
    The new line
[id_428911463]
var_dump($data);

array(3) {
  [0]=>
  string(6) "元素"
  [1]=>
  string(25) "Doc Content
The new line"
  [2]=>
  int(42)
}

在以上语法里,Heredoc是以一个数组元素的形式出现的,并且结束标记没有独立处在一行,同时存在缩进,要留意定义的字符串内容,两行的缩进都被去除了。

3 数组析构支持引用赋值

演示:

$v = [10, 20];
[$a, &$b] = $v;
$b += 10;
var_dump($v, $a, $b);

array(2) {
  [0]=>
  int(10)
  [1]=>
  &int(30)
}
int(10)
int(30)

在对b进行解析时,采用了引用传递的方式,这时b与$v[1]元素维持着引用关系。

4 list结构支持引用解析。

演示:

$v = [10, 20];
list($c, &$d) = $v;
$d += 10;
var_dump($v, $c, $d);

array(2) {
  [0]=>
  int(10)
  [1]=>
  &int(30)
}
int(10)
int(30)

5 instanceof 运算符支持字面量语法

instanceof的第一个运算数支持字面量,对非对象型字面量进行检测,其结果为false。

var_dump("literal" instanceof stdClass);
var_dump(42 instanceof stdClass);
var_dump(new stdClass() instanceof stdClass);

bool(false)
bool(false)
bool(true)

6 支持调用时参数的尾随逗号

调用函数时,参数列表后允许跟随一个逗号。

function methodName($p1, $p2)
{
    // some statmenet
    var_dump($p1, $p2);
}
methodName(10, 20, );

int(10)
int(20)

调用函数时,在第二个参数(也就是最后一个参数)之后,增加一个逗号这种情况是被允许的。不过在定义的时候,这种做法是不行的。

7 BC 数学函数

bcscale()函数能够支持获取,当前BC函数所使用的scale 。

bcscale(3);
var_dump(bcscale());

int(3)

8 LDAP 全支持

LDAP即轻量目录访问协议,它得到了完全支持。

9 多字节字符串函数更新10 FastCGI 进程管理

增加了如下的选项来配置FPM的Logging:(暂未翻译)

11 Argon2id 算法支持

配置参数“with-password-argon2[=dir]”后,提供了对Password_*()函数中Argon2i和Argon2id散列的支持,使用PASSWORD_ARGON2ID常量指定算法,PHP需要libargon2库版本大于(等于)20161029。

12 CompileError 异常替代了一些编译错误

添加了新的CompileError异常,ParseError继承了该异常,目前这只会影响Token_GET_All()在Token_parse模式下可能引发的编译错误。

13 性能提升

据说PHP7.3的速度比PHP 7.0快22% ,我还没有进行测试 ,有机会的话会进行一下压力测试 。

14 废弃大小写不敏感的常量

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

15 废弃在字符串中搜索非字符串内容

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

16 新常量

17 新函数

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

50阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

42阅读

php一句话木马,一句话木马ctf

2026年10月05日

45阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

46阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

44阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

40阅读