PHP 5.5.0 带给开发者的10大改进功能
PHP 5.5.0 带给开发者的10大改进功能
ZDNet开发频道 作者: 【编译】 2013年06月28日 14:02:50
关键词: 开发者 php
本文摘要
下面是最新版本的PHP的新特性的一些例子,其改进大约有10项,web开发人员可以在新的版本使用这些功能。在升级之前需要特别注意的一点是PHP 5.5.0已停止对Windows XP和2003的支持,其它向后不兼容的情况请参考这里。
。
# 1生成器现在可用
以下是一个简单的例子,使用生成器函数来打印出一个正整数序列如下所示。
function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
yield $i;
}
}
echo 'Single digit odd numbers: ';
foreach (xrange(1, 9, 2) as $number) {
echo "$number ";
}
echo "n";
这将打印“个位数奇数:1、3、5、7、9”。
# 2Finally关键字添加
新增的“finally”关键字,改进了PHP处理异常处理的方法.
像其它高级语言一样,PHP允许您在一个try和catch块包装代码。任何异常,在try块抛出的代码将被传递给在catch块的代码来处理。
finally关键字允许您定义一个代码块,被放置在catch块之后,不管一个异常是否抛出,将总是在try和catch块之后执行。
PHP手册给出的这个例子:
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
try {
echo inverse(5) . "n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "n";
} finally {
echo "First finally.n";
}
# 3新密码散列API
$hash = password_hash($password, PASSWORD_DEFAULT);
在这里password_hash()使用两个参数,第一个密码作为一个字符串,第二个是常数设置加密算法使用。
密码将自动匹配,可以验证使用下面的代码:
password_verify($password, $hash);
当前默认加密算法是bcrypt,尽管这将改变为新的和更强的算法被添加到PHP。
建议将结果存储在一个数据库列,可以扩大超出60字符。
# 4数组和字符串常量添加间接引用
例如:
echo 'Array dereferencing:';
echo [4,5,6][0];
echo "n";
选择数组中第一个元素打印输出,结果是“Array dereferencing:4“。
echo 'String dereferencing:';
echo 'HELLO'[0];
echo "n";
选择第一个元素的字符串打印输出,结果是“
String dereferencing:H”。
# 5容易类名称解析
例如:
namespace NS {
class ClassName {
}
echo ClassName::class;
}
将打印出两类的名称和名称空间,产生“NS 类名”。
# 6Empty()函数接受表达式
例如:
function send_false() {
return false;
}
if (empty(send_false())) {
echo "False value returned.n";
}
if (empty(true)) {
echo "True.n";
}
将打印“False value returned.”。
# 7支持Zend优化器+操作码缓存添加
作为新OPcache扩展,Zend优化器+操作码缓存已经被添加到PHP。
OPcache改善性能的脚本通过消除需要PHP脚本加载并解析每次发送一个请求。为此,在共享内存的字节码预编译脚本存储。
# 8 foreach循环现在支持list() construct
使用foreach()循环和list()构造,内部嵌套数组值现在可以分配给变量。
取自内部数组变量,list()可以用来轻松赋值,就像这样:
$animals = array('dog', 'fox');
// Listing all the variables
list($animal1, $animal2) = $animals;
echo "The quick $animal1 jumped over the lazy $animal2n";
产生熟悉的,“快狐狸跳过了懒惰的狗”。
从内嵌套的数组,现在list()可以使用foreach()循环分配值,例如:
$array = [
[10, 20],
[30, 40],
];
foreach ($array as list($a, $b)) {
echo "First: $a; Second: $bn";
}
结果:
第一:10,第二:20
第一:30,第二:40
# 9新特性添加到GD库
函数
# 10 foreach循环现在支持标量键
当使用foreach循环遍历一个数组,元素键现在能够有一个标量值,这是一个值而不是一个整数或字符串。
本文导航
转发
文章评论
登录 (没有帐户?快速注册)
使用第三方帐号登录: