0

以下は機能しません:

<?php
class test{
    const t = 10;
    public static $y = array('t' => self::t . 'hello');
}
var_dump(test::$y);
?>

誰かがそれがなぜなのか教えてもらえますか? :)

... => self::t で失敗します。'hello')... の部分で、継ぎ目として、array() でクラス定数を連結できません。

これは、次の両方が完全に機能することを意味します。

public static $y = array('t' => self::t);

public static $y = array('t' => 'hello');
4

1 に答える 1

1

誰かがそれがなぜなのか教えてもらえますか?

連結はランタイムの産物です。クラス メンバーの初期値は、解析時に既知である必要があります。

于 2012-04-10T15:54:55.617 に答える