包含在内的全局对象

时间:2012-08-21 13:00:41

标签: php oop include globals

用右手邻

我是OOP的新手。

我正在使用PHP v5 +

我有我的index.php:

<?
include_once('class/includes.php');
$reg = new register;
$action = $_GET['action'];
$page = $_GET['page'];
include('header.php');
if($page):
include($page);
else:
include('home.php');
endif;
include('footer.php');
?>

我设置了htaccess,以便每个页面的网址都是foo.com/pagename

很好。

在我的classes.php页面(foo.com/classes)上,默认情况下包含viewClasses.php //注意课程是指瑜伽课而不是OOP课程

基本上我有2个包含级别(index.php包括classes.php,其中包括viewClass.php)

这是我的viewClass.php

<?
global $reg;
$reg->viewClassList();
echo $reg->classList;

?>

出于某种原因,它没有按照index.php中的定义获取$ reg,因此给了我这个错误:

致命错误:在第3行的/home/pandazco/public_html/register/viewClass.php中的非对象上调用成员函数viewClassList()

我希望这足以解释我的问题......

1 个答案:

答案 0 :(得分:4)

问题似乎是你没有在viewClass.php中包含实例化,这意味着$ reg什么都不是。这就是错误告诉你的。

但是我永远不会使用全球变量,事实上我很确定有很多关于不使用它们的冗长讨论。相反,如果你需要在不同的PHP脚本之间传递数据,我会设置一个会话变量并从中读取。

另外,为什么你使用$ reg作为全球?您似乎要做的就是在index.php中实例化它并尝试在viewClass.php中调用它。你想要达到什么目的?