Autor | Zpráva | ||
---|---|---|---|
PHP_Nemaster Profil |
#1 · Zasláno: 27. 12. 2011, 16:51:24
Dobrý den,
začal jsem se pokoušet o objektové programování, ale nechápu jednu věc: Co přesně je objekt? Je to třída, metoda, nebo proměnná? class A { public function Text( $text ) { echo $this->text; } } $a = new A(); $a->Text('Ahoj'); Hlásí to chybu "Undefined property A::$text". Prý se dá $this použít pouze v objektovém kontextu, co je teda ten objekt? class A { public function Text( $text ) { $this->text = $text; echo $this->text; } } $a = new A(); $a->Text('Ahoj'); Ale tohle už funguje. Můžete mi prosím objasnit, kdy se dá použít to $this? Předem děkuji za odpověd' |
||
YaD Profil |
#2 · Zasláno: 27. 12. 2011, 16:53:52
Je to síce o Jave, ale koncepty sú isté:
http://java.mrazovci.eu/sk/node/118 |
||
PHP_Nemaster Profil |
#3 · Zasláno: 27. 12. 2011, 17:40:50
Ano, já jsem hledal i na PHP.net, ale potřebuji jenom vědět, jestli objekt = třída a kdy se dá použít $this.
|
||
Nox Profil |
#4 · Zasláno: 27. 12. 2011, 19:46:34
PHP_Nemaster:
ne objekt je instance třídy ... třída je "předpis," jak udělat konkrétní objekt $this se dá použít kdekoli* v metodách, kromě statických metod v kódu č.1 ti chybí definice vlastnosti $text, tzn. má tam být class A { public /* nebo protected nebo private */ $text; // ... } jinak nevim co ta funkce má dělat, když atribut text má dostat a zároveň ho vypisuje, ale má ho mít ještě jako členskou proměnnou, ale nevadí jinak č.2 - metody (funkce v třídě) mají obvykle na začátku malé písmeno, tzn. camelCase (a objekty PascalCase, tzn. první velké a další slova bez _ a velkým) *) samozřejmě kromě zanořených funkcí a anonymních funkcí |
||
PHP_Nemaster Profil |
#5 · Zasláno: 27. 12. 2011, 20:28:10 · Upravil/a: PHP_Nemaster
Děkuji.
|
||
Časová prodleva: 12 let
|
0