目录
常量标量表达式(Constant scalar expressions)" >常量标量表达式(Constant scalar expressions)
可变参数函数(Variadic functions via ...)" >可变参数函数(Variadic functions via ...)
参数解包功能(Argument unpacking via ...)" >参数解包功能(Argument unpacking via ...)
导入函数和常量(use function and use const)" >导入函数和常量(use function and use const)
phpdbg" >phpdbg
php://input可以被复用" >php://input可以被复用
大文件上传支持" >大文件上传支持
GMP支持操作符重载" >GMP支持操作符重载
新增gost-crypto哈希算法" >新增gost-crypto哈希算法
SSL/TLS改进" >SSL/TLS改进
首页 php教程 php手册 php 5.6新特性

php 5.6新特性

Jun 06, 2016 pm 08:13 PM
php php5.6 发布 新特性 特性

PHP5.6已经发布Alpha版,预示着下一个大版本的升级即将到来,PHP5.6带来了哪些新特性?本文将介绍这些特性,并讨论它们可以给开发者带来哪些好处。 常量标量表达式(Constant scalar expressions) 在常量、属性声明和函数参数默认值声明时,以前版本只允许常

PHP5.6已经发布Alpha版,预示着下一个大版本的升级即将到来,PHP5.6带来了哪些新特性?本文将介绍这些特性,并讨论它们可以给开发者带来哪些好处。

常量标量表达式(Constant scalar expressions)

在常量、属性声明和函数参数默认值声明时,以前版本只允许常量值,PHP5.6开始允许使用包含数字、字符串字面值和常量的标量表达式。

上面代码输出:

<code style="padding: 0.5em; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block;">4 The value of THREE is 3 </code>
登录后复制

可变参数函数(Variadic functions via ...)

可变参数函数 的实现, 不再依赖func_get_args()函数,现在可以通过新增的操作符 <span style="font-size: 14px;">...</span> 更简洁地实现。

<code style="padding: 0.5em; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block;"><?php function f($req, $opt = null, ...$params) {
    // $params is an array containing the remaining arguments.
    printf('$req: %d; $opt: %d; number of params: %d'."\n",
           $req, $opt, count($params));
}
f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);</code></code>
登录后复制

上面代码输出:

<code style="padding: 0.5em; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block;">$req: 1; $opt: 0; number of params: 0
$req: 1; $opt: 2; number of params: 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2; number of params: 3</code>
登录后复制

参数解包功能(Argument unpacking via ...)

在调用函数的时候,通过 <span style="font-size: 14px;">...</span> 操作符可以把数组或者可遍历对象解包到参数列表,这和Ruby等语言中的扩张(splat)操作符类似。

<?php
function add($a, $b, $c) {
    return $a + $b + $c;
}
$operators = [2, 3];
echo add(1, ...$operators);
登录后复制

上面代码输出:

<code style="padding: 0.5em; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block;">6</code>
登录后复制

导入函数和常量(use function and use const)

<span style="font-size: 14px;">use</span> 操作符开始支持函数和常量的导入。 <span style="font-size: 14px;">use function</span><span style="font-size: 14px;">use const</span> 结构的用法的示例:

 <?php
namespace Name\Space {
    const FOO = 42;
    function f() { echo __FUNCTION__."\n"; }
}
namespace {
    use const Name\Space\FOO;
    use function Name\Space\f;
    echo FOO."\n";
    f();
}
登录后复制

上面代码输出:

<code style="padding: 0.5em; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block;">42
Name\Space\f</code>
登录后复制

phpdbg

PHP自带了一个交互式调试器phpdbg,它是一个SAPI模块,更多信息参考phpdbg文档

php://input可以被复用

<span style="font-size: 14px;">php://input</span> 开始支持多次打开和读取,这给处理POST数据的模块的内存占用带来了极大的改善。

大文件上传支持

可以上传超过2G的大文件。

GMP支持操作符重载

GMP 对象支持操作符重载和转换为标量,改善了代码的可读性,如:

 <?php
$a = gmp_init(42);
$b = gmp_init(17);
// Pre-5.6 code:
var_dump(gmp_add($a, $b));
var_dump(gmp_add($a, 17));
var_dump(gmp_add(42, $b));
// New code:
var_dump($a + $b);
var_dump($a + 17);
var_dump(42 + $b);
登录后复制

新增gost-crypto哈希算法

采用CryptoPro S-box tables实现了 <span style="font-size: 14px;">gost-crypto</span> 哈希算法,详情参考 RFC 4357, section 11.2 。

SSL/TLS改进

OpenSSL扩展新增证书指纹的提取和验证功能,<span style="font-size: 14px;">openssl_x509_fingerprint()</span> 用于提取X.509证书的指纹,SSL stream context 选项: <span style="font-size: 14px;">capture_peer_cert</span> 用于获取对方X.509证书;<span style="font-size: 14px;">peer_fingerprint</span> 用于断言对方证书和给定的指纹匹配。

另外,可以通过SSL流上下文选项 <span style="font-size: 14px;">crypto_method</span> 指定加密方法,如SSLv3或TLS,目前支持的选项值包括STREAM_CRYPTO_METHOD_SSLv2_CLIENT, STREAM_CRYPTO_METHOD_SSLv3_CLIENT, STREAM_CRYPTO_METHOD_SSLv23_CLIENT (默认), or STREAM_CRYPTO_METHOD_TLS_CLIENT。

转:http://wulijun.github.io/2014/01/25/whats-new-in-php-5-6.html

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

在本章中,我们将了解CakePHP中的环境变量、常规配置、数据库配置和电子邮件配置。

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我们将学习以下与路由相关的主题?

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

See all articles