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;
    }

    ifempty(always_false())) {
    echo This will be printed.\n;
    }

    ifemptytrue)) {
    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() 函数

    无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》
    分享到: