我想跟随
class abc{
public function abc(){
someFunction(){
now here I can not call bcg function like due to scope of function
function bcg(){
$this->bcg();
}
}
}
public function bcg(){
...
}
}
现在我的问题是如何将当前类的对象传递给类的方法中的函数?
答案 0 :(得分:2)
您可以将当前对象传递给匿名函数/闭包,方法是将其作为参数传递给它:
// In an object method
$yourFunc = function ($object){
$object->bcg();
}
$yourFunc($this);
如果您的功能是在课堂之外定义的,您也可以将其用作解决方案:
function myFunction($object) {
$object->bcg();
}
class Foo {
public function bgc() {
// ...
}
public function doSomething() {
myFunction($this);
}
}
请注意,您的bcg
功能将在公共范围内访问,因此protected
或private
功能将无效。
答案 1 :(得分:1)
你不能在类方法中创建一个函数。
这应该有效:
class abc {
public function abc() {
$this->bcg(); // You can all bcg() here now
}
public function bcg() {
}
}