PHP5.5的新特点
添加时间:2013-7-2 点击量:
看了@轩脉刃 今天出炉的PHP 5.5 新特点。不过没有翻译全,我这里稍微补充下,收拾成完全的一篇:)
原文:http://www.php.net/manual/zh/migration55.new-features.php
1,生成器
php5.5经由过程引入yield关键字来支撑generators。Generators供给了一种加倍简洁的生成迭代器的体式格式,无需经由过程粗笨错杂的Iterator接口。
一个简单的示例:哄骗generators实现和range函数一样的迭代功能
function xrange(¥start, ¥limit, ¥step = 1) {
for (¥i = ¥start; ¥i <= ¥limit; ¥i += ¥step) {
yield ¥i;
}
}
echo Single digit odd numbers: ;
/
Note that an array is never created or returned,
which saves memory.
/
foreach (xrange(1, 9, 2) as ¥number) {
echo ¥number ;
}
echo \n;
以上例程会输出:
Single digit odd numbers: 1 3 5 7 9
2,添加finally关键字
try-catch语句如今支撑后边添加finally。无论是否会抛出异常,finally中的代码老是会被履行。
3,新的哈希API
添加了一个新的hash函数API,它可以更简单的生成安然的散列值,并且可以或许像crypt()一样用于暗码验证经管。具体请参阅:password_hash()。
4,foreach支撑list()
如今,foreach可以或许哄骗list()布局分化被嵌套的数组,并且提取此中的值。举例来说:
¥array = [
[1, 2],
[3, 4],
];
foreach (¥array as list(¥a, ¥b)) {
echo A: ¥a; B: ¥b\n;
}
以上例程会输出:
A: 1; B: 2
A: 3; B: 4
更多文档可以拜见foreach手册。
5,empty()支撑表达式
如今可以将随便率性的表达式传入empty()中。例如:
function always_false() {
return false;
}
if (empty(always_false())) {
echo This will be printed.\n;
}
if (empty(true)) {
echo This will not be printed.\n;
}
以上例程会输出:
This will be printed.
6,array和string字面的dereferencing
可以哄骗下标接见array、string字面中的某个元素或者char。(ps:dereferencing不知道怎么翻译才正确...看了轩脉刃的表述:支撑用下标获取,呵呵,其实就是这个意思。)
echo Array dereferencing: ;
echo [1, 2, 3][0];
echo \n;
echo String dereferencing: ;
echo PHP[0];
echo \n;
以上例程会输出:
Array dereferencing: 1
String dereferencing: P
7,经由过程::class获取类名
可以哄骗ClassName::class 获取class完全的类名。例如:
namespace Name\Space;
class ClassName {}
echo ClassName::class;
echo \n;
以上例程会输出:
Name\Space\ClassName
8,新增扩大OPcache
Zend Optimiser+的opcode cache被参加了php扩大,成为OPcache extension。OPcache可以进步php的履行机能,它可以或许在共享内存中存储编译好的opcode,以此节俭底本为每个恳求加载\解析php脚本的时候。具体安装和应用详情请参考the installation instructions。
9,foreach支撑非标量key
foreach如今支撑任何类型的key。原生的php数组仅可以或许用标量作为key,而如今可以经由过程实现Iterator::key()来返回随便率性类型的数据,并且foreach均能接管。
10,在win平台上支撑Apache 2.4
windows上用于apache2.4的SAPI已被实现支撑。
11,改进GD
GD扩大做出了很多改进,包含:
• 用于翻转图像的imageflip()函数
• 用于裁剪图像的 imagecrop() 和 imagecropauto() 函数
• 用于读写webp格局图像的imagecreatewebp() 和 imagewebp() 函数
无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》
看了@轩脉刃 今天出炉的PHP 5.5 新特点。不过没有翻译全,我这里稍微补充下,收拾成完全的一篇:)
原文:http://www.php.net/manual/zh/migration55.new-features.php
1,生成器
php5.5经由过程引入yield关键字来支撑generators。Generators供给了一种加倍简洁的生成迭代器的体式格式,无需经由过程粗笨错杂的Iterator接口。
一个简单的示例:哄骗generators实现和range函数一样的迭代功能
function xrange(¥start, ¥limit, ¥step = 1) {
for (¥i = ¥start; ¥i <= ¥limit; ¥i += ¥step) {
yield ¥i;
}
}
echo Single digit odd numbers: ;
/
Note that an array is never created or returned,
which saves memory.
/
foreach (xrange(1, 9, 2) as ¥number) {
echo ¥number ;
}
echo \n;
以上例程会输出:
Single digit odd numbers: 1 3 5 7 9
2,添加finally关键字
try-catch语句如今支撑后边添加finally。无论是否会抛出异常,finally中的代码老是会被履行。
3,新的哈希API
添加了一个新的hash函数API,它可以更简单的生成安然的散列值,并且可以或许像crypt()一样用于暗码验证经管。具体请参阅:password_hash()。
4,foreach支撑list()
如今,foreach可以或许哄骗list()布局分化被嵌套的数组,并且提取此中的值。举例来说:
¥array = [
[1, 2],
[3, 4],
];
foreach (¥array as list(¥a, ¥b)) {
echo A: ¥a; B: ¥b\n;
}
以上例程会输出:
A: 1; B: 2
A: 3; B: 4
更多文档可以拜见foreach手册。
5,empty()支撑表达式
如今可以将随便率性的表达式传入empty()中。例如:
function always_false() {
return false;
}
if (empty(always_false())) {
echo This will be printed.\n;
}
if (empty(true)) {
echo This will not be printed.\n;
}
以上例程会输出:
This will be printed.
6,array和string字面的dereferencing
可以哄骗下标接见array、string字面中的某个元素或者char。(ps:dereferencing不知道怎么翻译才正确...看了轩脉刃的表述:支撑用下标获取,呵呵,其实就是这个意思。)
echo Array dereferencing: ;
echo [1, 2, 3][0];
echo \n;
echo String dereferencing: ;
echo PHP[0];
echo \n;
以上例程会输出:
Array dereferencing: 1
String dereferencing: P
7,经由过程::class获取类名
可以哄骗ClassName::class 获取class完全的类名。例如:
namespace Name\Space;
class ClassName {}
echo ClassName::class;
echo \n;
以上例程会输出:
Name\Space\ClassName
8,新增扩大OPcache
Zend Optimiser+的opcode cache被参加了php扩大,成为OPcache extension。OPcache可以进步php的履行机能,它可以或许在共享内存中存储编译好的opcode,以此节俭底本为每个恳求加载\解析php脚本的时候。具体安装和应用详情请参考the installation instructions。
9,foreach支撑非标量key
foreach如今支撑任何类型的key。原生的php数组仅可以或许用标量作为key,而如今可以经由过程实现Iterator::key()来返回随便率性类型的数据,并且foreach均能接管。
10,在win平台上支撑Apache 2.4
windows上用于apache2.4的SAPI已被实现支撑。
11,改进GD
GD扩大做出了很多改进,包含:
• 用于翻转图像的imageflip()函数
• 用于裁剪图像的 imagecrop() 和 imagecropauto() 函数
• 用于读写webp格局图像的imagecreatewebp() 和 imagewebp() 函数
无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》