1

定数(DEPLOYMENT)の行で解析エラーが発生します。なぜ今これが許可されているのですか、それとも私は何かが足りないのですか?

エラーの解析:エラーの解析、 `')''を期待

class UploadComponent extends Object {

    private $config = array(
        'accessKey' => 'XXXX',
        'secretKey' => 'XXXX',

        'images' => array(
            'bucket' => DEPLOYMENT.'-files/images',
            'dns' => false
        ),

        'files' => array(
            'bucket' => DEPLOYMENT.'-files/files',
            'dns' => false
        ),

        'assets' => array(
            'bucket' => DEPLOYMENT.'-files/assets',
            'dns' => false
        )
    );
    ....
}
4

2 に答える 2

7

クラス変数を定義するときに変数を使用することはできません。代わりに、コンストラクター内で配列を初期化します。

class UploadComponent extends Object {

    private $config;

    function __construct() {
        $this->config = array(
            'accessKey' => 'XXXX',
            'secretKey' => 'XXXX',

            'images' => array(
                'bucket' => DEPLOYMENT.'-files/images',
                'dns' => false
            ),

            'files' => array(
                'bucket' => DEPLOYMENT.'-files/files',
                'dns' => false
            ),

            'assets' => array(
                'bucket' => DEPLOYMENT.'-files/assets',
                'dns' => false
            )
        );
    }
}
于 2010-10-14T11:18:26.293 に答える
5

その理由は、「定数」を動的に定義できるためです。したがって、それらの内容は実行時にのみ認識され、コンパイル時には認識されません。

于 2010-10-14T11:20:44.820 に答える