2

我在这里寻找语法上的胜利...我希望能够将消息添加到单例类中以供以后检索。

目前它看起来像这样:

class messenger
{
    static $messages;

    public function addMessage( $message ) {
        self::messages[] = $message;
    }

    public function showMessages() {
        foreach ( self::messages as $message ) {
            echo "<p>$message</p>";
        }
    }

}

现在我希望能够像这样使用它:

messenger::addMessage( 'This is a potential message!' );
messenger::addMessage( 'Another potential message!' );
messenger::showMessages();

哪个会输出这个([p] == 一个 html 段落标签):

[p]This is a potential message![/p]
[p]Anotherpotential message![/p]

我对这个概念有误解吗?我真的不想将它与使用它的每个不同类中的变量重新关联,但我不确定我的挂断是“如何做”还是根本不可能。

这个概念是能够将错误消息添加到这个(如数组)中,我不必全球化并且可以稍后检索。

编辑:我这样做是为了通过我的框架,我可以将来自其他类的消息添加到这个类,这些类可能也想在以后显示错误,而不必使用全局变量或重新实例化该类。

谢谢你的帮助!

4

2 回答 2

0

我不完全确定你在问什么。是的,您的建议可以正常工作。但如果你不知道,你的语法有点不对劲。

public static function addMessage( $message ) { ... }
public static function showMessages() { ... }
于 2012-05-29T01:36:53.633 回答
0

最好从外面隐藏它的状态,所以:

static $messages;

应该:

private static $messages = array();

还要注意初始化以确保它是一个数组,然后再向其中添加消息。

此外,您正在使用的方法应该声明为static,否则 PHP 会抱怨这个(触发E_STRICT警告),例如

public static function yourFunction() { }
于 2012-05-29T01:48:38.050 回答