1

クラスにいくつかのデフォルト値を設定しようとしていますが、gettext を変数値として使用できません

このコードでエラーが発生するのはなぜですか?

class Test
{
    private $defaultoptions = array('HideOwnPosts' => false,
                                    'HideClickedLinks' => false,
                                    'AutoCommentLinks' => false,
                                    'AutoCommentText' => gettext('exampletext'),
                                    'AutoOpenCount' => 5);
}

gettext für i18n を使用するユーザーの言語に依存するデフォルト値が必要なだけなので、ここでも ist を使用したいと思います。

http://codepad.org/PTlIelQ4

4

2 に答える 2

7

「動的な」結果 ( gettext()) でクラス メンバーを開始することはできません。静的な値のみが許可されます。関数の結果を使用してメンバーを初期化する必要がある場合は、クラス定義ではなく、コンストラクターで行う必要があります。

于 2012-04-16T21:57:37.520 に答える
2

これを試して:

<?php
class Test
{
    private $defaultoptions = array('HideOwnPosts' => false,
                                    'HideClickedLinks' => false,
                                    'AutoCommentLinks' => false,
                                    'AutoCommentText' => false,
                                    'AutoOpenCount' => 5);
    public function __construct() {
        $this->defaultoptions['AutoCommentText'] = gettext('exampletext');
    }
}
于 2012-04-16T22:28:14.753 に答える