将$ this传递给类外的函数

时间:2013-10-24 02:38:00

标签: php scope this

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

目前我正在这样做:

class foo {   
   func_outside_class($this);
}

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

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

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

2 个答案:

答案 0 :(得分:0)

@Barmar写道:

  

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

     

如果就是这种情况,我认为你不能这样做。您不能分配$this,它是一个特殊变量,它始终包含类方法中的当前对象。

     

在外部功能中,您只需执行$context->method(...)即可使用它。

答案 1 :(得分:-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();
}