访问PHP方法中定义的函数内部的属性

时间:2018-10-25 15:45:37

标签: php oop methods private

我需要在方法内部调用一个函数。此功能需要访问私有财产。这段代码:

class tc {
  private $data=123;

  public function test() {
    function test2() {
      echo $this->data;
    }

    test2();
  }
}

$a=new tc();
$a->test();

返回以下错误:

致命错误:在不在...的行中的对象上下文中使用$ this

使用PHP 5.6.38。我该怎么办?

1 个答案:

答案 0 :(得分:1)

不确定为什么要在方法内部声明一个函数,但是如果要这样做,则将私有成员作为参数传递给该函数。

<?php 

class tc {
  private $data=123;

  public function test() {
    function test2($data) {
        echo $data;
    }

    test2($this->data);
  }

}

$a=new tc();
$a->test();