[英]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.