-2

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

Undefined variable: testInfo in 

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

$testInfo = new TestInfo();

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

!$testInfo->test;

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

4

3 回答 3

3

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

尝试将 $testInfo 传递到您的方法中

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

  $testInfo = new TestInfo();
  $t = new T();
  $t->someMethod($testInfo);
于 2013-05-28T20:22:46.427 回答
0

使用全局关键字:

$testInfo = new TestInfo();

class X {
    function y() {
        global $testInfo;
        echo $testInfo->test;
    }
}
于 2013-05-28T20:25:14.373 回答
-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;

    }

}

?>
于 2013-05-28T20:25:11.550 回答