1

Righty-o

私はOOPにかなり慣れていません。

PHPv5+を使用しています

私は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');
?>

各ページのURLがfoo.com/pagenameになるようにhtaccessを設定しています

それはいいです。

私のclasses.phpページ(foo.com/classes)には、デフォルトでviewClasses.phpが含まれています//クラスはOOPクラスではなくヨガクラスを参照していることに注意してください

つまり、基本的に2つのレベルのインクルードがあります(viewClass.phpを含むclasses.phpを含むindex.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 に答える