PHP的一些特性
官方说明:https://www.php.net/manual/zh/migration70.new-features.php
严格模式
php7.0+
declare(strict_types=1);
⚠️该声明指令必须放在文件的顶部。
批量使用 use
php7.0+
use app\models\{Area, Category};
NULL 合并操作符
$a ?? $b ?? $c;
从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL
定义常量数组
php7.0+
方式一:
1 |
|
方式二:
1 |
|
太空船操作符
php7.0+
1 | echo 1 <=> 1; // 0 |
整数除法函数
php7.0+
1 | var_dump(intdiv(10, 3)); // int(3) |
支持多个异常处理
php5.5+
1 | try { |
Bug
PHP Bug 官方主页 https://bugs.php.net/index.php
PHP 7.1 版本以上 json_encode 编码浮点数精度丢失问题
Bug 报告:https://bugs.php.net/bug.php?id=74221
Bug 复现
1 |
|
解决方案
调整 php.ini 文件中的serialize_precision
为 serialize_precision = -1
。
其它
获取毫秒级时间戳
round(microtime(true) * 1000)
浮点数中显示有效数字的位数由 php.ini 中的
precision
参数控制