0

シングルトンをphp 5.3で動作させるのに少し問題があります

私が達成したいのは、1 つの php ファイルをクラスに含めることができるようになることです。これにより、グローバル シングルトンを介して辞書によって Web ページを翻訳できます。

使用例:

<?php
    include_once "CLocale.php";
?>
//...
<head>
<title><?php CLocale::Instance()->getText("StrMemberArea")?></title>

現時点では、私のクラスは次のようになります。

class CLocale
{
    private function __clone()
    {
    }

    public static function Instance()
    {
        if (static::$_instance === NULL)
        {
            static::$_instance = new static();
        }
        return static::$_instance;
    }

    private function __construct()
    {
    }

    public function getText($str)
    {
        return "Test";
    }
}

したがって、問題は、上記のようなクラスを使用すると「テスト」の出力が得られず、エラーも発生しないことです。PHP Storm でエラーが表示されることはありません。おそらく、皆さんの 1 人がどこかで問題を見つけることができます。

前もってありがとう、calav3ra

PS: シングルトンの実装方法は気にしません

4

3 に答える 3

3

結果をエコーするのを忘れていました

<title><?php CLocale::Instance()->getText("StrMemberArea")?></title>

次のようにする必要があります。

<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title>
于 2013-02-11T12:19:30.523 に答える
2

うーん - Singleton コードは完全に正しいですが、getText からの戻り値を出力するのを忘れていました

<?php
    include_once "CLocale.php";
?>
//...
<head>
<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title>
于 2013-02-11T12:19:31.093 に答える
2

何かを表示するには、それを返すだけでなく、それを返す必要もありechoますprint。このような:

<title><?php echo CLocale::Instance()->getText("StrMemberArea")?></title>
于 2013-02-11T12:19:42.223 に答える