Autor Zpráva
Fisak
Profil *
Zdravím je někdo kdo by mi vysvětlil rozdíl mezi static a public ?? popř. nějaké další alternativy ???
Nox
Profil
chtělo by to trochu rozumnější dotaz

static kde?
Ve funkci to znamená, že si proměnná uchová hodnotu mezi jednotlivým spuštěním funkce. U vlastnosti (class property) že si uchovává hodnotu pro konkrétní třídu, napříč instancemi. U metody že se volá jakoby "na třídě", neváže se k instanci

public znamená, že je metoda/vlastnosti viditelná a editovatelná z vnějšku objektu ($dog->name = "xyz"), protected že jsou přístupné jen v metodách třídy a jejích potomcích a private že jsou přístupné jen v té konkrétní třídě

ale nevím kde's na to narazil, že jsou tam popsané jen tyto 2 věci a není to nějak vysvětlené

chtělo by to upřesnit dotaz
Ugo
Profil
Static (má dále taky oprávnění):
- nedrží se v instanci ale ve třídě která je globální
class::$var
self::$var

ne-static (bez určení static)
-nenáleží třídě, ale až její instanci (vzniká po new Class()), není globální v podstatě (musíš mít tu instanci)
$instance->var
$this->var


Oprávnění:

Public:
- nechá se volat zvenku
$instance->var
$this->var

Alternativy - protected, private :
- stejný jako public, ale nejdou volat zvenčí. private se nedědí, protected jo. Kombinuje se s gettery a settery getVar(){return $this->var} setVar($x){$this->var=$x}
funguje jen
$this->var
Fisak
Profil *
např.
public $promenna = "ahoj";
static $promenna = "ahoj";
rozdíl ??
Bertram
Profil
Veřejná nestatická vlastnost bude patřit objektu, který ze třídy vytvoříš, ale statická (u které ti chybí modifikátor přístupu) zůstane třídě, takže pokud ji v jedné instanci změníš, projeví se tato změna ve všech.

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