php7的新特性有哪些

您所在的位置:网站首页 php7的新特性有哪些 php7的新特性有哪些

php7的新特性有哪些

2023-08-10 17:34| 来源: 网络整理| 查看: 265

php7的新特性有哪些 发布时间:2020-06-22 20:51:22 来源:亿速云 阅读:171 作者:Leah 栏目:编程语言

php7的新特性有哪些?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

PHP 标量类型与返回值类型声明标量类型声明

强制模式

declare(strict_types=1) 以上程序执行输出结果为: 9复制代码

严格模式

以上程序由于采用了严格模式,所以如果参数中出现不适整数的类型会报错,执行输出结果为: PHP Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……复制代码PHP NULL 合并运算符

以前的三元运算

$site = isset($_GET['site']) ? $_GET['site'] : '菜鸟教程';复制代码

现在的合并运算符

$site = $_GET['site'] ?? '菜鸟教程';复制代码

以上2种方法是一样的

以下是实例:

复制代码组合比较符,又称太空船运算符

PHP 7 新增加的太空船运算符(组合比较符)用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b时,它分别返回-1、0或1。

以下是实例

复制代码 以上结果分别为复制代码0 -1 1 0 -1 1 0 -1 1复制代码PHP 常量数组以前定义常量数组 只能有 const;现在定义常量数组可以使用 define();

以下是实例:

// 使用 define 函数来定义数组 define('sites', [ 'Google', 'Runoob', 'Taobao']);print(sites[1]); ?> 以上程序执行输出结果为: Runoob复制代码PHP 匿名类PHP 7 支持通过 new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义。以下是实例: 以上程序执行输出结果为: 我的第一条日志复制代码php Closure::call()PHP 7 的 Closure::call() 有着更好的性能,将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数。实例 以上程序执行输出结果为: 1 1复制代码PHP 过滤 unserialize()PHP 7 增加了可以为 unserialize() 提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。实例 以上程序执行输出结果为: 1 2复制代码

注意 以上特性是unserialize()里面多了一个参数选择  allowed_classes

PHP CSPRNG 伪随机数生成器

CSPRNG(Cryptographically Secure Pseudo-Random Number Generator,伪随机数产生器)。

PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

random_bytes() - 加密生存被保护的伪随机字符串。

random_int() - 加密生存被保护的伪随机整数。

综上  类似于原先的 rand() 和  'mt_rand()';  只不过 现在random_bytes()生成的是随机字符串

php7 异常PHP 7 异常用于向下兼容及增强旧的assert()函数。它能在生产环境中实现零成本的断言,并且提供抛出自定义异常及错误的能力。老版本的API出于兼容目的将继续被维护。assert()现在是一个语言结构,它允许第一个参数是一个表达式,而不仅仅是一个待计算的 string或一个待测试的boolean。assert()的应用 跟assert_option() 配合复制代码

还有参数类型

配置项默认值可选值zend.assertions11.生成和执行代码 (开发模式) 0.生成代码,但在执行时跳过它-1.不生成代码 (生产环境)assert.exception01.断言失败时抛出,可以抛出异常对象,如果没有提供异常,则抛出AssertionError 对象实例。0 . 使用或生成 Throwable, 仅仅是基于对象生成的警告而不是抛出对象(与 PHP 5 兼容)**参数** assertion 断言。在 PHP 5 中,是一个用于执行的字符串或者用于测试的布尔值。在 PHP 7 中,可以是一个返回任何值的表达式, 它将被执行结果用于指明断言是否成功。 description 如果 assertion 失败了,选项 description 将会包括在失败信息里。 exception 在 PHP 7 中,第二个参数可以是一个 Throwable 对象,而不是一个字符串,如果断言失败且启用了 assert.exception 该对象将被抛出 实例 将 zend.assertions 设置为 0: 实例 以上程序执行输出结果为: Hi! 将 zend.assertions 设置为 1,assert.exception 设置为 1: 实例 以上程序执行输出结果为: Fatal error: Uncaught AssertionError: assert(true == false) in -:2 Stack trace:#0 -(2): assert(false, 'assert(true == ...')#1 {main} thrown in - on line 2复制代码PHP 7 use 语句PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量:// PHP 7 之前版本需要使用多次 use use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; use function some\namespace\fn_a; use function some\namespace\fn_b; use function some\namespace\fn_c; use const some\namespace\ConstA; use const some\namespace\ConstB; use const some\namespace\ConstC; // PHP 7+ 之后版本可以使用一个 use 导入同一个 namespace 的类 use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC}; ?>复制代码

关于php7的新特性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读: PHP7 新特性有哪些 php7中有哪些新特性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php7 p7 上一篇新闻:开源监控解决方案Nagios+Cacti+PNP4Nagios+NConf+NDOUtils+Nagvis(三)pnp4nagios安装 下一篇新闻:Windows Server 2016-命令行批量导出AD用户信息 猜你喜欢 海外虚拟空间租用多少钱香港云加速虚拟主机租用有哪些用途好用的联通虚拟主机怎么配置云服务器代理本地服务器的方法是什么杭州主机托管服务器怎么办理龙岗网站建设怎么选择服务器配置域名访问提示网络异常怎么解决韩国cn2服务器租用怎么绑定域名韩国服务器推荐购买怎么选择服务商重庆服务器托管机柜哪家好怎么选择


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3