tintink
24.08.2011, 13:00:12
Witam mam pytanie jak utworzyć obiekt w klasie?
np.
class DataPage
{
...
}
class PageController
{
$data = new DataPage(); //komunikat "Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\xampp\htdocs\www2\pliktestowy.php on line 84"
}
wizu
24.08.2011, 13:04:06
Możesz do tego wykorzystać konstruktor.
class DataPage
{
}
class PageController
{
private $data;
public function __construct()
{
$this->data = new DataPage();
}
}
askone
24.08.2011, 13:05:28
A czytał Kolega jakikolwiek poradnik OOP?? Wydaje mi się, że nie więc podpowiem - brakuje metod (funkcji) w ramach których będziesz udostępniał funkcjonalności klasy...
Pozdrawiam
tintink
24.08.2011, 13:19:23
Cytat(askone @ 24.08.2011, 14:05:28 )

A czytał Kolega jakikolwiek poradnik OOP?? Wydaje mi się, że nie więc podpowiem - brakuje metod (funkcji) w ramach których będziesz udostępniał funkcjonalności klasy...
Pozdrawiam
Metody już mam, chciałem jak najprościej przedstawić problem, w języku java nie miałbym takiego problemu. Chciał bym w projekcie stworzyć trzy klasy pierwsza, która odpowiedzialna jest za pobieranie danych z xml, druga do przetwarzania danych, logikę (żeby przetwarzać muszę mieć obiekt z klasy dane) i trzecią za wyświetlanie informacji.
askone
24.08.2011, 13:26:40
Cytat(tintink @ 24.08.2011, 14:19:23 )

Metody już mam, chciałem jak najprościej przedstawić problem, w języku java nie miałbym takiego problemu.
Skoro znasz język java to poczytaj tylko o składni PHP - zasady programowania OOP są takie same...
tintink
24.08.2011, 13:50:38
Jak by była składnia tylko inna nie wyskoczył by mi komunikat, szkoda, że ludzie na forach zazwyczaj piszą przeglądnij forum, przeczytaj książkę. Wydaje mi się, że pytanie nie było takie głupie, a nawet jak to po co jest zakładka przedszkole? W poradnikach o programowaniu OOP rzadko są pokazywane takie przykłady.
nospor
24.08.2011, 13:53:40
Przecież dostałeś przykład od wizu.
tintink
26.08.2011, 08:30:53
Jeszcze mam jedno pytanie dlaczego w trakcie tworzenia obiektu wskakują błędy? Kawałek kodu:
class DataPage //dane
{
function findcountPage() //ilosc stron
{
return count($GLOBALS['baza_xml'] -> page);
}
}
class PageController //controller
{
private $data; //obiekt klasy dane
public function __construct()
{
$this -> $data = new DataPage(); //95
}
public function countPage()
{
$this -> $countPage = $data -> findcountPage();
return $countPage;
}
}
$obiekt = new PageController();
Wyskakują mi błędy:
Notice: Undefined variable: data in C:\xampp\htdocs\www2\pliktestowy.php on line 95
Fatal error: Cannot access empty property in C:\xampp\htdocs\www2\pliktestowy.php on line 95
askone
26.08.2011, 08:36:39
To
$this->$countPage
zamień na
$this->countPage
tintink
26.08.2011, 09:09:23
Dzięki, ostatnie pytanie, jak odwołać się w klasie do funkcji innej klasy przez obiekt w nim znajdujący się?
Kawałek kodu:
class DataPage //dane
{
function findcountPage() //ilosc stron
{
return count($GLOBALS['baza_xml'] -> page);
}
}
class PageController //controller
{
private $data; //obiekt klasy dane
private $countPage;
public function __construct()
{
$this -> data = new DataPage();
}
public function countPage()
{
$this -> countPage = $data -> findcountPage(); //110, Nie wiem jak odwołać się do funkcji innej klasy przez obiekt $data
return $countPage;
}
}
$obiekt = new PageController();
$obiekt -> countPage();
Błędy:
Notice: Undefined variable: data in C:\xampp\htdocs\www2\pliktestowy.php on line 110
Fatal error: Call to a member function findcountPage() on a non-object in C:\xampp\htdocs\www2\pliktestowy.php on line 110
askone
26.08.2011, 09:20:22
Zamiast
$data -> findcountPage()
zastosuj
$this->data->findcountPage()
wizu
26.08.2011, 09:20:53
$this -> data -> findcountPage()
tintink
26.08.2011, 09:24:45
Wielkie dzięki, już wszystko jest jasne
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.