繁体   English   中英

如何从PHP 7中的匿名访问主类的实例?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM