不支持的语法列表

Z5加密支持 PHP 7.2 支持的绝大多数语法,但以下列表列出的语法不支持。另外,针对某些可能会导致E_WARNING的代码,在不同版本PHP下可能会出现E_FATAL导致程序无法运行,因此需要您在E_ALL下开发代码。

extract / compact

不支持extract函数与compact函数,将拒绝编译。

extract(['a' => 'b']);

静态成员变量

不支持对于静态成员变量设置引用:

class A { static $b = 0 }
echo A::$b; // 支持
$a::$b = 10; // 支持
$a::$b = &$a; // 不支持

Lambda / 函数内部定义其他结构

暂不支持以下类似代码,将在编译时提示编译失败:

function a () {
  function b () {}
  class A {}
  $a = function () use ($b) {}
  $b = function () {}
  $c = new class {}
}

Generator / Yield

暂不支持Generator / Yield,将在编译时提示编译失败:

function count_to_ten() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from seven_eight();
    return yield from nine_ten();
}

TICKS

暂不支持declare / ticks语法,将在编译时提示编译失败:

declare(ticks = 1) {
  // something
}