Php 有没有办法在一行中调用类实例的方法?

Php 有没有办法在一行中调用类实例的方法?,php,instance,Php,Instance,我使用一个微型框架,它的主要对象通过 框架的Wiki建议添加所需的控制器方法 $mainobject = mainobject::instance() 因此,通过单一变量,它可以用于模型。我怀疑这是否真的方便,在每个模型的方法中定义该变量以获得例如全局配置变量 class MyAnotherModel extends FrameworksModel { … my_method() { global $mainobject; …

我使用一个微型框架,它的主要对象通过

框架的Wiki建议添加所需的控制器方法

$mainobject = mainobject::instance()
因此,通过单一变量,它可以用于模型。我怀疑这是否真的方便,在每个模型的方法中定义该变量以获得例如全局配置变量

class MyAnotherModel extends FrameworksModel 
{
    …
    my_method() {
        global $mainobject;
        …
        if ($mainobject->config['something_here'];
        $mainobject->controller->othermodel->othermodelsarray['somestring']; 
    }
}
无论如何,这是一个巨大的字符串,我更愿意调用一个实例,然后每次编写两个字符串。我是说,写

mainobject::instance->config['goods']
mainobject::instance->controller->othermodel->othermodelsmethodgiveme('power');
但我不知道是否可以实现,因为控制器类不提供作为变量调用实例。我想这可能是通过getter方法实现的……如果有这样的方法的话。那么,如果不重写原始的mainobject类,我能做什么呢


inb4长字符串不便于键入-这没有问题,因为我可以在emacs中使用abbrevs,并使键入短语简短。

mainobject::instance()->config['goods']
应该可以工作我无法想象它会工作,但它确实可以。谢谢,为什么不起作用?把它拆成碎片。调用静态方法并获取返回值,然后对其进行操作。原始代码的问题在于,您没有调用该方法,而是试图像访问属性一样访问它。看起来方法可以有属性。我知道无论你调用什么,一个属性或一个方法,默认情况下都是一个对象,但在php中从未见过。实际上不是,只是看起来很像。在几乎所有主要语言中,添加
()
表示正在调用该方法,并且您现在正在对返回值进行操作。如果没有
()
,它将是对方法本身的引用,这将表明该方法将具有属性。做出这样的区分可以避免今后的许多混乱。
mainobject::instance->config['goods']
mainobject::instance->controller->othermodel->othermodelsmethodgiveme('power');