Mam taki przykładowy error :
Fatal error: Call to a member function show() on a non-object in /var/www/html/dyplom/page/tresc1.php on line 2 Miałem nadzieję, że dołącze kod poprzez include i bede mógł korzystać z wcześniej zadeklarowanych obiektów. Jednak nie ma takiej możliwości obecnie, musze deklarować obiekt klasy PresentationClass w pliku tresc1.php od nowa. A ja chciałbym mieć możliwość dalej korzystać z obiektów, które powstają na poczatku. Nie chce tworzyc nowych. Prosze o pomoc w rozwiązaniu problemu.
Oto kod :
pik: test.php
<?php
require_once("class/PageClass1.php") ;
require_once("class/PresentationClass.php") ;
$Page = new PageClass() ;
$Pokaz = new PresentationClass() ;
$Page->addDiv("content","page/tresc1.php") ;
$Page->show(); // pokaz zawartośc zbudowanego obiektu
?>
plik : tresc1.php
<?php
$Pokaz->show("wio");
?>
plik : PageClass1.php
<?php
class PageClass {
private $div = null ;
function __construct() {
}
public function addDiv($styl,$plik=null) {
if ($plik != null) {
$this->div[] = array($styl=>$plik); }
}
public function showStruktura() {
if ($this->div != null) {
$w=null;
$i=0;
while($i<$d) {
foreach ($this->div[$i] as $klucz=>$wartosc ){
print "<div id=\"".$klucz."\">\n"; include($wartosc) ;
}
$i++;
}
}
}
// -------------------------------------------------------------------------------------- [ metody ]
public function show() {
$part = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n" ;
$part .="<html>\n" ;
$part .="<head>\n" ;
$this->showStruktura(); // podział strony w stylach
$part .= "</body>\n";
$part .= "</html>\n";
print $part; // wyswietlenie stony
}
}
?>
plik: PresentationClass.php
<?php
class PrezentationClass {
// rózne zmienne i metody
public function show($zm) {
}
}
?>
Ten post edytował nospor 30.03.2009, 07:17:32