-2

好吧,我将向您展示一个非常简单的示例...

class menu_r {

    public function anuncio(){
        return $a;
    }

    public function peido(){
        return $b;
    }

    public function running(){

    if(self::anuncio()){
        $retorno.= self::anuncio();
    }

    if(self::peido()){
        $retorno.= self::peido();
    }

    return print $retorno;
}

我正在使用

$a = new menu_r();
$a->anuncio();
$a->running();

我的问题是:我如何不显示 peido() ,因为他没有被使用?我尝试了很多但不能,试图get_class使用,isset,is_object并且没有工作= /

4

1 回答 1

0

这应该这样做:

class menu_r {
    private $calledAnnuncio = false;
    private $calledPeido = false;

    public function anuncio() {
        $this->$calledAnnuncio = true;
        return $a;
    }

    public function peido() {
        $this->calledPeido = true;
        return $b;
    }

    public function running() {

        if ($this->calledAnnuncio) {
            $retorno.= self::anuncio();
        }

        if ($this->calledPeido) {
            $retorno.= self::peido();
        }

        return print $retorno;
    }

}

在这里,我将“已调用某些特殊函数”状态保存在各自的私有变量中,并在调用 running() 时检查这些状态是否设置为 true,并且只有当状态设置为 true 时,我才会再次调用该函数。因此,如果在调用 running() 之前直接调用了一个函数,那么它将在 running() 函数中再次调用

于 2013-03-19T00:11:21.080 回答