当我试图从另一个类中的方法引用属性时,我得到这个错误:
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;
}
}
?>