1

对吧

我对 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,以便每个页面的 url 是 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()

我希望这能很好地解释我的问题......

4

1 回答 1

4

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

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

另外,为什么您仍然使用 $reg 作为全局变量?您似乎所做的只是在 index.php 中实例化它并尝试在 viewClass.php 中调用它。你到底想达到什么目的?

于 2012-08-21T13:06:11.600 回答