class klasa
{
public function funkcja1()
{
function funkcja1a()
{
return 'test01';
}
function funkcja1b()
{
return 'test02';
}
}
}
$c = new klasa();
// wywołanie funkcja1a
czy można wywołać z zewnątrz funkcję funkcja1a() czy można wyłącznie z fukncji funkcja1?
$c->funkcja1->funkcja1a();
zwraca błąd:
Fatal error: Call to a member function funkcja1a() on a non-object in /home/yaras/public_html/si/index.php
faktycznie, metoda klasy nie może zawierać funkcji.
ale funkcja w funkcji jest i działa jak najbardziej
eot
Złączono Posta: 04.07.2007 (Sro) 17:40
A jednak udało mi się zagnieździć klasę w klasie. Rozwiązanie to mnie jednak bardzo dziwi, no ale najpierw kod:
plik index.php:
class func1_class
{
var $func2;
function __construct()
{
include 'func2.php';
$this->func2 = new func2_class;
}
}
$func1 = new func1_class();
$func1->func2->Lorem();
plik func2.php:
class func2_class
{
public function Lorem()
{
echo 'Lorem';
}
}
Wbrew pozorom skrypt zadziała. W razie wątpliwości radzę samemu sprawdzić ;-). Skrypt natomiast nie działa jeśli w miejsce include wstawimy treść pliku func2.php - wie ktoś może dlaczego tak się dzieje?