2012-04-01 38 views
0

這裏裏面是類:PHP訪問同一個類中包含的類

的functions.php

class buildPage { 

    public function Set($var,$val){ 
     $this->set->$var = $val; 
    } 

    function Body(){ 
     ob_start(); 

     include('pages/'.$this->set->pageFile); 
     $page = ob_get_contents(); 

     ob_end_clean(); 

     return $page; 
    } 

    function Out(){ 
     echo $this->Body(); 
    } 
} 

因此,這裏是腳本的主要(索引頁)。

的index.php

include_once('include/functions.php'); 

$page = new buildPage(); 

$page->Set('pageTitle','Old Title');  
$page->Set('pageFile','about.php'); 

$page->Out(); 

現在你可以看到,它包括about.php通過類文件,其實裏面的類。

現在,我想訪問相同的buildPage()類來更改頁面標題。

about.php

<?php 

$this->Set('pageTitle','New Title'); 
echo '<h1>About Us</h1>'; 

?> 

但遺憾的是,沒有任何反應。

請善待,花幾分鐘時間給我一些幫助!

+0

我想你確實應該這樣說的:HTTP: //codeangel.org/articles/simple-php-template-engine.html – 2012-04-01 14:56:50

+0

感謝您的評論! – pnm123 2012-04-01 15:02:53

回答

0

好的。我已經設法自己解決這個問題。

更改的功能體()和輸出()如下:

function Body(){ 

    $pageFile = $this->Get('pageFile'); 
    if(empty($pageFile)){ 
     $pageFile = 'home.php'; 
    } 

    $page_path = 'pages/'.$pageFile; 

    ob_start(); 

    include($page_path); 

    if(!empty($page_set_arr) && is_array($page_set_arr)){ 
     foreach($page_set_arr AS $k=>$v){ 
      $this->Set($k,$v); 
     } 
    } 

    $page = ob_get_clean(); 

    return $page; 
} 

function Out(){ 
    $body = $this->Body(); 

    echo $this->Header(); 
    echo $body; 
    echo $this->Footer(); 
} 

然後更改的文件about.php如下:

<?php 

$page_set_arr = array(
        'pageTitle' => 'About Us' 
       ); 

?> 

<h1>About Us</h1> 
相關問題