0

我在让单例在 php 5.3 中工作时遇到了一些问题

我想要实现的是,我将能够在一个类中包含一个 php 文件,这让我可以通过字典在全局单例上翻译网页。

使用示例:

<?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";
    }
}

所以,问题是,当使用如上所示的类时,我没有得到任何“Test”输出,而且,我没有得到任何错误。PHP Storm 并没有真正向我显示任何错误。也许你们中的一个人能够在某个地方发现问题。

在此先感谢,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

Ehm - Singleton 代码完全正确,但您忘记从 getText 输出返回值

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

要显示任何内容,您不仅需要返回它,还需要返回echoprint。像这样:

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