PHP 5.4和Facebook Hiphop兼容性

时间:2012-10-25 15:00:46

标签: php facebook hiphop

我想知道是否有人知道Facebook的Hiphop库中不支持PHP 5.4中的哪些功能。关于Hiphop github wiki有一些问题,例如this一个,非常模糊地陈述:

  

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

目前我只是假设,出于工作目的,所有新功能都不兼容,因为没有指定可用,如果有人对此有任何见解,那将是很好的,提前感谢。

2 个答案:

答案 0 :(得分:8)

远离以下情况:

特质宣言

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();

答案 1 :(得分:1)

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$