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

时间:2013-05-28 20:18:48

标签: php

当我尝试从另一个类中的方法引用属性时出现此错误:

Undefined variable: testInfo in 

testInfo是一个在代码中先前初始化的对象:

$testInfo = new TestInfo();

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

!$testInfo->test;

我可以从类外部回显$ testInfo-> test并返回属性。我的问题是为什么我会收到此错误,我将如何修复它?

3 个答案:

答案 0 :(得分:3)

$testInfo需要在与使用它相同的范围内访问。

尝试将$ testInfo传递给您的方法

  class T {
        public function someMethod(TestInfo $testInfo){
             // do something with testInfo
        }
  }

  $testInfo = new TestInfo();
  $t = new T();
  $t->someMethod($testInfo);

答案 1 :(得分:0)

使用global关键字:

$testInfo = new TestInfo();

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

答案 2 :(得分:-1)

如果您从另一个类引用$thisInfo->test,则该类范围内不存在$thisInfo。使用global关键字:

<?php

class TestInfo() {

    public var $test = 'hello';

}

$TestInfo = new TestInfo;

class TestClass() {

    public function getInfo() {

        global $TestInfo;
        echo $TestInfo->test;

    }

}

?>