【问题标题】:PHP 5.4 and Facebook Hiphop compatibilityPHP 5.4 和 Facebook Hiphop 兼容性
【发布时间】:2012-10-16 16:43:18
【问题描述】:

我想知道是否有人知道 Facebook 的 Hiphop 库不支持 PHP 5.4 中的哪些功能。 Hiphop github wiki上有一些问题,比如this一,说得很含糊:

HipHop 目前不支持所有 PHP 5.4 功能。

目前我只需要假设,出于工作目的,所有新功能都不兼容,因为没有指定可以工作,如果有人对此有任何见解,那就太好了,提前致谢。

【问题讨论】:

    标签: php facebook hiphop


    【解决方案1】:

    远离以下:

    特征声明

    trait vehicleInfo {
        function getSpeed() { /*1*/ }
        function getWheels() { /*2*/ }
    }
    
    class Car extends Vehicle {
        use vehicleInfo;
        /* ... */
    }
    
    class Motorcycle extends Vehicle {
        use vehicleInfo;
        /* ... */
    }
    

    PHP 5.4 数组实例化

    $array = [
        "name" => "John Smith",
        "job" => "Basketweaver",
    ];
    

    函数数组解引用

    function small_numbers() {
        return array (0, 1, 2);
    }
    
    echo small_numbers()[0];
    

    实例化时的类成员访问

    (new Foo)->bar();
    

    【讨论】:

    • 感谢您的回复和示例,我将远离它们。你知道这些是否与 HipHop-php 不兼容吗?或者如果那是一个较短的列表!
    • 所有这些更新都是句法优化。您不必使用它们来编写代码,它们只是让您的生活更轻松(因此从长远来看,远离它们不会伤害您)。
    • 我们刚刚开始在一个长期运行的项目上测试 HHVM。我没有看到它抱怨特征或 5.4 数组实例化,但它确实抱怨在 foreach 循环中使用引用,即:foreach ($foo as &$bar)。如果有人有最新的综合列表,我很乐意看到。
    【解决方案2】:

    HipHop 目前支持 Daniel Li 指出的所有功能,但可能的二进制数除外。事实上,HipHop 多年来一直支持闭包。运行时不断改进,因此请留意未来您正在等待出现的功能。

    如果有疑问,并且您有时间,只需尝试使用某个功能并查看它是否有效。

    akrieger@vb:~/www$ hhvm features.php
    2
    akrieger@vb:~/www$ cat features.php
    <?php
    
    trait vehicleInfo {
        function getSpeed() { /*1*/ }
        function getWheels() { return [1,2,3,4]; }
    }
    
    class Vehicle {}
    
    class Car extends Vehicle {
        use vehicleInfo;
        /* ... */
    }
    
    class Motorcycle extends Vehicle {
        use vehicleInfo;
        /* ... */
    }
    
    $getMotorcycleWheels = function() {
      return (new Motorcycle())->getWheels();
    };
    
    echo $getMotorcycleWheels()[1];
    echo "\n";
    akrieger@vb:~/www$
    

    【讨论】:

      猜你喜欢
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2012-12-15
      • 1970-01-01
      相关资源
      最近更新 更多