繁体   English   中英

在静态子类php中调用非静态函数

[英]Calling a non static function in a static child class php

我有一个单例课程,扩展了普通课程。 (Class1)

普通类具有两个名为set()和get()的非静态函数。 (Class2)

获取单例(Class1)实例的第三类(Class3)通过单例使用set()和get()。 使用Class3可以正常工作,但是有什么方法可以使用父类的单例内部的get()方法来查看“第三”类的设置是什么?

我似乎无法调用get,因为它是非静态的。 请让我知道这是否令人困惑。

class Class1 {
     public function doThings(){
         $this->view->set("css","1234");
     }
}

class Singleton extends Class3 {
      static public function instance()
      {
           if (!self::$_instance instanceof self) {
           self::$_instance = new self();
           }

          return self::$_instance;
      }
      //I want this singleton to call get("css") and have it return the value.

}


class Class3{
     public function get(arg){//implementation } 
     public function set(arg){//implementation }
}

我从未见过仅针对单例的特定类,该类扩展了应该用于单例的类。 相反,请尝试以下操作:

class Class3
{  
    private $_instance;

    static public function instance()
    {
        if (!self::$_instance instanceof self) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }

    public function get(arg){//implementation } 
    public function set(arg){//implementation }
}

// Calling code
// I want this singleton to call get("css") and have it return the value.

Class3::getInstance()->set('css', 'border:0');
Class3::getInstance()->get('css');

我刚刚解决了我自己的问题,对不起您的答复。

我在单例中要做的就是这样调用get():

self::instance()->get("css");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM