如何从方法中引用其他对象属性


How to reference other object properties from within methods?

当我试图从另一个类中的方法引用属性时,我得到这个错误:

Undefined variable: testInfo in 

testInfo是一个对象,在前面的代码中用:

初始化
$testInfo = new TestInfo();

我用另一个类中的方法引用它:

!$testInfo->test;

我可以从类外部回显$testInfo->test,它返回属性。我的问题是为什么我得到这个错误,我该如何去修复它?

$testInfo需要在与使用它的地方相同的作用域中可访问。

尝试将$testInfo传入你的方法

  class T {
        public function someMethod(TestInfo $testInfo){
             // do something with testInfo
        }
  }
  $testInfo = new TestInfo();
  $t = new T();
  $t->someMethod($testInfo);

使用全局关键字:

$testInfo = new TestInfo();
class X {
    function y() {
        global $testInfo;
        echo $testInfo->test;
    }
}

如果您从另一个类引用$thisInfo->test,则$thisInfo不存在于该类的作用域中。使用global关键字:

<?php
class TestInfo() {
    public var $test = 'hello';
}
$TestInfo = new TestInfo;
class TestClass() {
    public function getInfo() {
        global $TestInfo;
        echo $TestInfo->test;
    }
}
?>