わかりました私はindex.phpを持っています:
<?php
require 'php/stdlib.php';
$site->page->render();
foreach($page as $var => $value) {
echo $var ." is ". $value." <br/>";
}
?>
サイトとページの obj 作成は stdlib ファイルにあり、-for each- ループが出力されるため、明らかに機能しています。
name is welcome
headers is inc/index_h.php
footers is inc/index_f.php
contents is inc/welcome.php
オブジェクトが作成されたことを示します。また、適切な結果が得られる var ダンプも実行しました。ここに site---page---render があります。
public function render_page(){
$this->page->render();
}
ここにページがあります---レンダリング:
public function render(){
include $this->headers;
include $this->contents;
include $this->footers;
}
ただし、スクリプトの結果は次のとおりです。
未定義の変数:
そしてまた
非オブジェクトのプロパティを取得しようとしています: どちらのエラーも、ページ ヘッダーのインクルード ファイルで使用した $page オブジェクトを指しています:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $page->name; ?></title>
<script src="/scripts/jquery.js"></script>
</head>
<body>
エラーは実際には画面上ではなく HTML タイトル タグに出力されます。つまり、ブラウザーで [ソースの表示] を使用して確認する必要があります。インクルードを使用するときに $page オブジェクトを表示するにはどうすればよいですか?しかし、このことは私を2日間困惑させました.
おそらく、ページとサイト オブジェクトが stdlib.php で次のようにインスタンス化されていることを追加する必要があります。
$site = new csite();
site_ini($site);
$page = new cpage("welcome");
$site->setPage($page);