Ecco la classe:
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();
}
}
Quindi ecco la pagina principale (indice) dello script.
index.php
include_once("include/functions.php");
$page = new buildPage();
$page->Set("pageTitle","Old Title");
$page->Set("pageFile","about.php");
$page->Out();
Ora come puoi vedere, include il file about.php attraverso la classe, in realtà all'interno della classe.
E ora, voglio accedere alla stessa classe buildPage () per cambiare il titolo della pagina.
about.php
<?php
$this->Set("pageTitle","New Title");
echo "<h1>About Us</h1>";
?>
Ma sfortunatamente, non succede nulla.
Per favore, sii gentile a richiedere qualche minuto per darmi un aiuto!
risposte:
0 per risposta № 1OK. Sono riuscito a risolvere il problema da solo.
Funzione modificata Body () e Out () come segue:
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();
}
E poi ha cambiato il file about.php come segue:
<?php
$page_set_arr = array(
"pageTitle" => "About Us"
);
?>
<h1>About Us</h1>