Клас

Преправих го малко :
<?php
class Site{
public $title;
function __construct($a){
include('includes/layout/head.php');
$this->title=$a;
}
}
$obj=new Site('Title');

?>


Как да направя сега пък title да се показва :

<?php
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>'.$this->title.'</title>
</head>';
?>
 
<?php
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>'.$obj->title.'</title>
</head>';
?>

Така при мен не работи
 
index.php
<?php
require('classes/site.php');
$obj=new Site('axaaxa');
?>

site.php
<?php
class Site{
function __construct($title){
include('includes/layout/head.php');
}
}
?>

head.php
<?php
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>'.$title.'</title>
</head>';
?>

Така работи ( оправих го сам ) :)
 
XxLPxX каза:
Пробвай го сам и се увери ,че не работи :(
ЕДИТ : Fatal error: Cannot re-assign $this in C:\xampp\htdocs\classes\site.php on line 7 (за миро)

Това е от разликата между версиите на PHP. :)
 
XxLPxX каза:
<?php
class Site{
public $title='';
function __construct(){
include('includes/layout/head.php');
}
public function Title($a){
echo $a;
$a=$this->title;
}

}
?>

Как да направя че стойноста във title( ) да е равна на public $title :?

Темплейт клас се прави по този начин:

Клас:
Код:
class Site {
private static $instance=null; //Ще използваме сингълтон защото не ни трябват 50 обекта а само 1.
public static $title = null;

public static function __getInstance() {
       if(self::$instance == null) {
               self::$instance = new Site();
       }
       return self::$instance;
}

private function __construct() {
}

public  function head() {
        require 'headerfile.php';
}

public  function foot() {
        require 'footerfile.php';
}

public static setTitle($title) {
        self::$title = $title;
}

}


headerfile.php
Код:
<html><head><title>{self::$title}</title></head><body>blablalba

footerfile.php
Код:
blabla...</body></html>

Код:
$template =& Site::__getInstance();
$template->setTitle("Ime na saita");
$template->head();
//blalba....съдържание тук
$template->foot();



bancov96 каза:
XxLPxX каза:
Пробвай го сам и се увери ,че не работи :(
ЕДИТ : Fatal error: Cannot re-assign $this in C:\xampp\htdocs\classes\site.php on line 7 (за миро)

Това е от разликата между версиите на PHP. :)

Не е точно така. :D Ти буквално се опитваш да отмениш инстанцията на $this. На български да му промениш стойноста. Това е ЗАБРАНЕНО и PHP ти го казва.
 

Back
Горе