【发布时间】:2015-10-29 13:03:42
【问题描述】:
我有一个包含类的文件。当我需要访问课程时,我会include 这个文件。我想在类所在的文件中声明类,这样我只需要声明一次类,只需要include文件就可以使用类。
这行得通。
<?php
$GLOBALS['foo_model'] = new foo_model;
$foo_model = $GLOBALS['foo_model'];
global $foo_model;
Class foo_model
{
function foo_function() {
// ect
}
}
这不起作用
<?php
$foo_model = new foo_model;
global $foo_model;
Class foo_model
{
function foo_function() {
// ect
}
}
尝试使用该类时会导致错误。
Call to a member function foo_function() on a non-object
为什么一定要以$GLOBALS开头,然后转成正则变量再套用global。我认为$GLOBALS 和global 只是语法不同。 $GLOBALS 在这里有什么不同?
此外,编写包含类的文件的最佳方法是什么,以便我可以include该文件,并使用该类,而无需在包含该文件后声明该类,也无需使用@987654332 @?我的第一个代码 sn-p 是完成此任务的最佳方式吗?
【问题讨论】:
-
我将从类定义开始,然后是实例化。
-
如果你的意思是把
$api_model = new api_model; global $api_model;放在文件的底部,那仍然会弹出一个非对象错误。
标签: php scope include global-variables