【发布时间】:2011-10-03 04:48:26
【问题描述】:
我正在使用 PHP 的 require_once() 方法将一个 PHP 脚本包含到另一个中。该脚本包含一个类 TemplateAdmin,它在脚本之后立即实例化自身,如下所示:
class TemplateAdmin {
// Class body...
}
$templateAdmin = new TemplateAdmin();
这在一段时间内运行良好。但是,我采用了一种新的导入技术来包含类和包。我已经测试了这种新技术,并且它有效!但是,出于某种奇怪的原因,我导入的任何类中的任何方法在我需要时都不存在。但是,实例变量似乎仍然存在。
例如,当调用具有此绝对路径的类时:
require_once("C:\wamp\www\wave_audio\system\server\templates\TemplateAdmin.php");
...我在调用堆栈中收到此错误:
Fatal error: Call to undefined method stdClass::top() in C:\wamp\www\wave_audio\cms\index.php on line 189
这个错误是指我在TemplateAdmin 类中使用top() 方法。
有人知道为什么会这样吗???如果这有帮助,我一直在使用require_once(),我在 Windows XP Media Center 机器上运行 PHP 5.3.5。
感谢您的宝贵时间!
【问题讨论】:
-
最好能展示完整的相关源代码(在哪里做require,在哪里调用top())......
-
你能把你的代码减少到一个最小的测试用例,然后在这里发布吗?
-
包含整个脚本太长了,但我可以向您保证,在调用该方法之前已导入脚本。它有效,因为我尝试过回显一些包含文件中的文本,在我收到错误之前显示在我的屏幕上。我将尝试将其归结为简化版本... :)
-
import()函数中有require_once()吗? -
我认为这可能是你的问题
$templateAdmin被困在import函数中。
标签: php class methods require-once