0

我在类内调用函数,函数在类外。我想将$this类传递给该函数,

目前我正在这样做:

class foo {   
   func_outside_class($this);
}

function func_outside_class($context){
    return  $context;
}

有没有办法让我不需要将上下文作为函数参数传递。还是我上面的代码没问题?

我无法在函数内创建对象,因为此类需要一些参数。

4

2 回答 2

1

@Barmar 写道:

传递$this给外部函数没有任何问题。但我不明白你为什么要立即覆盖$context变量——如果函数不使用它,为什么要接受参数?也许你的意思是$this = $context

如果是这样的话,我认为你做不到。不允许分配$this,它是一个特殊变量,始终包含类方法中的当前对象。

在外部函数中,您可以简单$context->method(...)地使用它来代替。

于 2015-06-16T16:14:59.503 回答
-1

如果你只是想在你的类中引用方法,你可以做这样的事情

class Foo {
    public function bar() {
        return 'Hello World';
    }
}

function func_outside_class() {

    // instantiate class
    $foo = new Foo;

    // call method bar() from Foo class
    echo $foo->bar();
}
于 2013-10-24T02:53:32.700 回答