Autor Zpráva
needu
Profil *
Dobrý den,
vždy jsem se na Vás mohl obrátit a mám na Vás dotaz, zda by mi to někdo nemohl vysvětlit, resp. ukázat přímo na kódu.
Googloval jsem, ovšem moc tomu nerozumím. Nedávno jsem se naučil základy OOP a potřeboval bych vědět, jak se používá namespace
A poté ještě dvě věci.
Mám třeba třídu "Maincore" a v ní jednotlivé metody - funkce. Tu třídu tedy vytvořím:
$promenna = new Maincore;
poté budu chtít zavolat nějakou tu metodu, takže $promenna->nazev();..
Ale viděl jsem třeba toto:
$neco = new Neco;
$neco->nejakaTrida->druhaTrida();
$this->dalsiTrida();
Jak se ve třídě volá this a k čemu, to chápu.
Třeba:
Class xx{
function neco()
{
return "ahoj";
}
function pozdrav();
{
echo $this->neco();
}
}
Ovšem nevím, jak se to $this používá jakoby mimo tu třídu, jak jsem psal výše + jak se používá jakoby volání těch dvou metod.
Dokázal by mi někdo toto vysvětlit?
Děkuji ještě jednou moc!
Alphard
Profil
1. namespace (jmenný prostor) slouží, jednoduše řečeno, jako další vrstva v pojmenovávání. Umožňuje sdružovat k sobě (nejen) třídy a používat pro ně názvy, které by v globálním kontextu byly duplicitní.
Často se jejich funkce a struktura přirovnává k adresářovému stromu (roztřídit prvky do nějaké struktury, aby „nebyly na jedné hromadě“), ale na začátku není nezbytné se tím zabývat.
2. když metoda vrací $this, vrací vlastně referenci (pozn. není to reference ve smyslu &$prom) na původní objekt (totéž, co obsahuje $neco), takže lze zřetězeně volat další metody. Mluví se o tom jako o fluent interface.
3. $this mimo třídu volat nelze, v podstatě je to jen zástupná proměnná pro současnou instanci, z venku je třeba pracovat s proměnnou navrácenou při vytváření nového objektu $instance = new Object();.
needu
Profil *
Paráda!! Díky moc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: