[英]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.