[英]How to access the instance of the main class from an anonymous in PHP 7?
I'm trying to access the instance of the class where it contains an anonymous as we do in Java, eg: 我正在尝试访问包含匿名的类的实例,就像我们在Java中一样,例如:
JAVA JAVA
class MyClass
{
private String prop = "test";
public void test()
{
new Runnable() {
public void run()
{
// I can access MyClass.this from here
System.out.println(MyClass.this.prop);
}
}.run();
}
}
PHP 7 PHP 7
<?php
class MyClass
{
private $prop = "test";
public function test()
{
$class = new class{
public function run()
{
// ???? MyClass::$prop ????
}
};
}
}
How can I access the MyClass instance from within the anonymous? 如何从匿名中访问MyClass实例?
Use this: 用这个:
class MyClass
{
public $prop = "test";
public function test()
{
$class = new class($this){
private $parentObj;
public function __construct($parentObj)
{
$this->parentObj = $parentObj;
}
public function run()
{
echo $this->parentObj->prop;
}
};
$class->run();
}
}
$x = new MyClass();
$x->test();
The key is to inject $this
as a constructor parameter of the anonymous class. 关键是将$this
作为匿名类的构造函数参数注入。
Note: I've changed your private $prop
to public
so i wouldn't have to write a getter for it ;) 注意:我已将您的private $prop
更改为public
因此我不必为其编写getter;)
See if here: https://3v4l.org/IRhXd 看看这里: https : //3v4l.org/IRhXd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.