[英]How to access the instance of the main class from an anonymous in PHP 7?
我正在尝试访问包含匿名的类的实例,就像我们在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
class MyClass
{
private $prop = "test";
public function test()
{
$class = new class{
public function run()
{
// ???? MyClass::$prop ????
}
};
}
}
如何从匿名中访问MyClass实例?
用这个:
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();
关键是将$this
作为匿名类的构造函数参数注入。
注意:我已将您的private $prop
更改为public
因此我不必为其编写getter;)
看看这里: https : //3v4l.org/IRhXd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.