当我尝试从另一个类中的方法引用属性时出现此错误:
Undefined variable: testInfo in
testInfo是一个在代码中先前初始化的对象:
$testInfo = new TestInfo();
我使用另一个类中的方法引用它:
!$testInfo->test;
我可以从类外部回显$ testInfo-> test并返回属性。我的问题是为什么我会收到此错误,我将如何修复它?
答案 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;
}
}
?>