Autor Zpráva
yarda
Profil *
Ahoj,

v php už něco umím, ale pořád nevím, jak a k čemu se používá "->".
Někde jsem viděl třeba
$query->id
a takhle..
Mohl by mi to někdo prosím vysvětlit? Díky všem :)
Magnus123
Profil
yarda:
Ahoj, jedná se o operátor, pomocí kterého se dostaneš k vlastnostem nebo metodám objektů. Podívej se na nějaké články o OOP (objektově orientované programování).

Kromě operátoru šipka (->) také uvidíš operátor dvojitá dvojtečka (::).
Kubo2
Profil
yarda, Magnus123:
dvojitá dvojtečka (::)
Mimochodom, táto dvojitá dvojtečka sa správne nazýva pámajim nekudotajim (paamayim nekudotayim) a používa sa na prístup ku statickým metódam a datovým zložkám tried v PHP.
Smutné však je, že aj keď v PHP môžeš deklarovať statickú metódu alebo datovú zložku, nemôžeš deklarovať ako statickú celú triedu, a tak z triedy, ktorá je "statická" - obsahuje iba statické metódy a datové zložky - môžeš pomocou operátora new vytvoriť objekt či inštanciu.
yarda
Profil *
Díky oboum :) Nějak jsem to pochopil, snad dobře.:D
Joker
Profil
Kubo2:
Mimochodom, táto dvojitá dvojtečka sa správne nazýva pámajim nekudotajim (paamayim nekudotayim)
Nepovažoval bych ale termín „dvojitá dvojtečka“ za chybný, protože ten úchvatný název pámajim nekudotajim je „dvojitá dvojtečka“ hebrejsky :-)

Jen dodám, že kromě „pojmenování podle vzhledu“ ty operátory mají i „pojmenování podle funkce“.
Operátor „šipka“ (arrow) se jmenuje „objektový operátor“ (object operator)
a dvojitá dvojtečka (paamayim nekudotayim) se jmenuje „operátor rozlišení kontextu“ (scope resolution operator)
llook
Profil
Kubo2:
Smutné však je, že aj keď v PHP môžeš deklarovať statickú metódu alebo datovú zložku, nemôžeš deklarovať ako statickú celú triedu, a tak z triedy, ktorá je "statická" - obsahuje iba statické metódy a datové zložky - môžeš pomocou operátora new vytvoriť objekt či inštanciu.
Pokud máš private constructor, tak ten objekt můžeš vytvořit pouze v metodě té třídy (nebo přes Reflection, nebo unserialize). Smutné mi to nepřijde.

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:

0