2016-11-16 11 views
0

私は以下の関数でタイトルを設定しようとしていますが、ビューをレンダリングできるように別の関数を呼び出そうとしていますが、タイトルが見えなくなってからです。ここに私のコードは次のとおりです。別のファイルからPHPは2つの関数を呼び出しますが、最初から変数を保存しますか?

スニペット:

$indexPage = new View(); 
$indexPage->setPageTitle('This is the title'); 
$indexPage->render('index'); 

これは私のビュークラスです:

class View { 

    private $title; 

    public function render($file) { 
     require '/view/header.php'; 
     require '/view/'.$file.'.php'; 
     require '/view/footer.php'; 
    } 

    public function setPageTitle($title) { 
     $this->title = $title; 
    } 

} 

その後、私は自分のページにアクセスします。

index.phpを:

<?php echo $this->title ?> 

しかし、それは表示されません。

+0

ここはあなたのケースごとに動作するはずです。デバッグの目的で、エラー報告を有効にして、エラーがあるかどうかを確認してください。 – Thamilan

+0

@タミランは気にしません。 – baileyJchoi

答えて

1

はい表示されません。コードスニペットで述べたようにindex.phpにViewオブジェクトを作成した場合、<?php echo $indexPage->title ?>を呼び出す必要があります。それ以外の場合は、ビューテンプレートをレンダリングするときに、ほとんどのMVCのようにデータを渡す必要があります。

注:直接アクセスする場合は、title変数をpublicにします。それ以外の場合は、別のパブリック関数を記述してプライベートメンバーを返します。

+0

'$ indexPage-> title'は動作しません – baileyJchoi

+0

これは今、感謝しています! – baileyJchoi

0

<?php echo $indexPage->title ?>を試してprivate $title;public $title;に変更してください。

プライベート変数は、彼らがしているクラスの外からアクセスすることができません。

関連する問題