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
原文地址:php 5.6新特性, 感谢原作者分享。

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Atom编辑器mac版下载
最流行的的开源编辑器