我正在第35行的page.class.php中的非对象上调用“成员函数process_data()”,即使该对象已被调用。
这是index.php提取,显示即时对象
// require our common files
require("modules/module.php");
require("registry/objects/datetime.class.php");
require("registry/objects/page.class.php");
// load in all the objects
$datetime = new dateandtime;
$page = new page;
$module = new module;
然后传递给Process类
require("template.class.php");
$template = new template($php_path . "controllers/themes/adm/" . $page . ".html");
// Place in both commonly used language and page specific language
$template->language($php_path . "controllers/language/en/adm/common.php");
$template->language($php_path . "controllers/language/en/adm/" . $page . ".php");
// Tell the page's module to load in data it needs
$module->process_data("module_" . $page);
// Output the final result
$template->output();
此时PHP正在抛出错误。 module.php文件的内容如下
class module {
public function process_data ($child) {
require($child . ".php");
read_data();
return true;
}
}
我已经尝试将实例声明移动到第二个粘贴代码中,但这会产生更多错误,因为“模块”调用的类也会使用某些“模板”类 - 因此会出现同样的问题更进一步。
我弄错了什么,或者完全失踪了,我确定这是后者,但我真的需要帮助。感谢
答案 0 :(得分:0)
当我尝试调用object方法时,它看起来好像$ module不在范围内。你可以在$ module-> process_data(“module_”。$ page)之前尝试var_dump($ module)。这个功能的结果是什么?快速解决方案可能是声明$ module全局,但总体上不是一个好主意(但你可以检查它是否有效)。