is_countable rfc

当计数不可数的对象时,PHP 7.2添加了警告。 is_countable函数可以帮助防止此警告。

$count = is_countable($variable) ? count($variable) : null;

array_key_first and array_key_last rfc

这两个函数基本上可以按照名称所说的进行操作。

$array = ['a' => '…','b' => '…','c' => '…',
];array_key_first($array); // 'a'
array_key_last($array); // 'c'

原始RFC还提出了 array_value_first  array_value_last , 但是这些遭到了大多数人的反对。

另一个 array_first  和  array_last 被返回一个元组 [$key => $value],目前,我们只有两个函数来获取数组的第一个键和最后一个键。

灵活的Heredoc语法 rfc

Heredoc对于较大的字符串可能是有用的工具,尽管过去它们有缩进的怪癖。

// Instead of this:$query = <<<SQL
SELECT *
FROM `table`
WHERE `column` = true;
SQL;// You can do this:$query = <<<SQLSELECT * FROM `table`WHERE `column` = true;SQL;

在已经嵌套的上下文中使用Heredoc时,这特别有用。

结束标记前面的空白将在所有行上被忽略。

重要说明:由于此更改,一些现有的Heredocs可能会中断, 当他们在体内使用相同的结束标记时。

$str = <<<FOO
abcdefgFOO
FOO;// Parse error: Invalid body indentation level in PHP 7.3

函数调用中的尾部逗号 rfc

数组已经可以实现的函数,现在也可以通过函数调用来实现。 注意,在函数定义中是不可能的!

$compacted = compact('posts','units',
);

更友好的错误信息

TypeErrors用于整数和布尔值,用于打印其全名, 它已更改为 int  bool ,以匹配代码中的类型提示。

Argument 1 passed to foo() must be of the type int/bool

与PHP 7.2相比:

Argument 1 passed to foo() must be of the type
integer/boolean

JosnException异常 rfc

以前,JSON解析错误调试起来很麻烦。 JSON函数现在接受一个额外的选项,使它们在解析错误时引发异常。 显然,此更改添加了一个新的异常: JsonException 

json_encode($data, JSON_THROW_ON_ERROR);json_decode("invalid json", null, 512, JSON_THROW_ON_ERROR);// Throws JsonException

虽然此函数仅在新添加的选项中可用, 有可能它将成为将来版本中的默认行为。

列表引用分配 rfc

list()及其速记的 [] 语法现在支持引用。

$array = [1, 2];list($a, &$b) = $array;$b = 3;// $array = [1, 3];

Compact未定义变量 rfc

传递给 compact 的未定义变量将被通知,并且之前会被忽略。

$a = 'foo';compact('a', 'b'); // Notice: compact(): Undefined variable: b

Same site cookie rfc

此更改不仅添加了新参数, 它也以不变的方式更改了 setcookie  setrawcookie  session_set_cookie_params 函数的工作方式。

它们现在不再支持已经庞大的函数,而是支持一系列选项,同时仍向后兼容。 一个例子:

bool setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]]
)bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, array $options ]]]
)// Both ways work.

字符串搜索函数 README

您不能再将非字符串针传递给字符串搜索函数。 这些是受影响的函数:

strpos()
strrpos()
stripos()
strripos()
strstr()
strchr()
strrchr()
stristr()

链接:https://www.learnfk.com/article-new-in-php-73
来源:Learnfk无涯私塾网

PHP 7.3 新特性介绍相关推荐

  1. SAP PI 7.3新特性介绍

    PI 7.3新特性介绍 自从SAP TechEd  2010 年在Berlin对PI7.3的新特性作了介绍之后,类似于single Java Stack, central monitoring, ID ...

  2. Xcode9新特性介绍-中文篇

    背景: Xcode 9 新特性介绍: 1.官方原文介绍链接 2.Xcode9 be ta 2 官方下载链接 本文为官方介绍翻译而来,布局排版等都是按照官方布局来的. 与原文相比,排版上基本还是熟悉的配 ...

  3. Angular8 - 稳定版修改概述(Angular 8的新特性介绍)

    Angular 8的新特性介绍 在之前Angular团队发布了8.0.0稳定版.其实早在NgConf 2019大会上,演讲者就已经提及了从工具到差分加载的许多内容以及更多令人敬畏的功能.下面是我对8. ...

  4. 技术前沿资讯-Apache Flink 1.14 新特性介绍

    一.简介 1.14 新版本原本规划有 35 个比较重要的新特性以及优化工作,目前已经有 26 个工作完成:5 个任务不确定是否能准时完成:另外 4 个特性由于时间或者本身设计上的原因,会放到后续版本完 ...

  5. hadoop3.0新特性介绍

    hadoop3.0新特性介绍 1. 基于jdk1.8(最低版本要求) 2. mr采用基于内存的计算,提升性能(快spark 10倍) 3. hdfs 通过最近black块计算,加快数据获取速度(块大小 ...

  6. chrome 63 android分类,Chrome 63 Beta新特性介绍

    原标题:Chrome 63 Beta新特性介绍 除非另外注明,否则,下面介绍的更改均适用于最新 Chrome Beta 渠道版(Android.Chrome 操作系统.Linux.Mac 和 Wind ...

  7. 蚂蚁金服 SOFAArk 0.6.0 新特性介绍 | 模块化开发容器...

    SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里 ...

  8. JDK 9-17 新特性介绍

    Java新特性介绍 Java 8是Oracle 公司于 2014 年 3 月 18 日发布的,距离今天已经过了近十年的时间了,但是由于Java 8的稳定和生态完善(目前仍是LTS长期维护版本),依然有 ...

  9. jdk7和8的一些新特性介绍

    社区之星王海庆:速度激情,学习极客     Markdown轻松写博文     微信公众平台开发     天天爱答题 一大波C币袭来     读文章送好书     jdk7和8的一些新特性介绍 更多p ...

  10. 红旗系统linux2.6.32屏保咋设置,红旗Linux桌面操作系统 V11社区预览版发布,附新特性介绍...

    红旗Linux桌面操作系统 V11(英文名称为RedFlag Linux Desktop 11)社区预览版发布了,根据计划,该版本将开放给用户下载试用.以下将介绍它的新特性:良好的硬件兼容.丰富的外设 ...

最新文章

  1. mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...
  2. 89岁教授起诉知网获赔70万:自己的论文竟要花钱才能看?
  3. 全双工和半双工的区别
  4. 腾讯云linux服务器怎么使用图形化界面_自己搭建一个自动签到和远程下载的服务器...
  5. 【LeetCode】50. Pow(x, n) (3 solutions)
  6. base64核心原理
  7. cf1512 G - Short Task
  8. 小米路由器怎么连接无盘服务器,播放器+服务器的方法瞬间玩转小米路由方法图文介绍...
  9. Oracle能用什么软件访问,使用工具访问ORACLE数据库(一)
  10. flutter UiKitView 加载ios 原生view
  11. 嵌入式视频处理基础(一)
  12. 测试基础【第二篇】软件测试模型
  13. atom无法安装插件的解决方法之一
  14. 某高校校园网的规划与设计(课程设计)
  15. python动漫教程视频_求python的进阶教程视频_python动漫教程视频教程
  16. 用户画像的定义及构建方法
  17. java 日程日历_java编程:我要做一个提醒日程的软件,不是要用到日历和时钟么,这要不要自己编,还是可以直接同步电脑上...
  18. winmerge多个文件夹生成html,winmerge使用方法,winmerge使用教程
  19. 钉钉群机器人关键词自动回复_企业微信营销机器人怎么接入?
  20. 洗牌程序c语言原理,C语言经典算法 - 洗牌算法

热门文章

  1. 电信光猫天翼网关usb插U盘共享文件
  2. Debezium系列之:sqlserver数据库开启CDC
  3. 数据处理与机器学习(大致进行了解学习)
  4. php中的汉字转化为拼音,简繁体转化
  5. 六款好用的Mac最流行的开发工具,程序员必看~
  6. 排列组合算法(全排列、全组合)
  7. windows下8080端口被占用解决方法
  8. 查看电脑连接的WiFi密码的两种方法
  9. 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
  10. java 九大行星运行_html5 canvas太阳系九大行星运行动态图代码