Autor | Zpráva | ||
---|---|---|---|
ProHelperCZE Profil * |
#1 · Zasláno: 26. 10. 2013, 19:59:24
Zdravím,
koukal jsem se a nemůžu pochopit pracování s třídami a metodamy. A pak třeba to $query->neco->neco. Když zadám do editoru class, tak mi vyběhne toto: /** * */ class ClassName extends AnotherClass { function __construct(argument) { # code... } } Děkuji moc. |
||
lorin Profil |
#2 · Zasláno: 26. 10. 2013, 20:27:56
|
||
ProHelperCZE Profil * |
#3 · Zasláno: 26. 10. 2013, 20:58:29
[#2] lorin
Díky, zkusil jsem něco podle jednoho návodu sestavit. <?php class Neco { private $promenna; $num = mt_rand(0,1000); public function __construct($promenna = $num) { $this->Hodnota = $promenna; } public function ZjistiNahodneCislo() { return $this->Hodnota; } } $trida = new Trida(); echo $trida->ZjistiNahodneCislo(); ?> ( ! ) SCREAM: Error suppression ignored for ( ! ) Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting ',' or ';' in D:\wamp\www\test.php on line 6 |
||
IdemeNaHavaj Profil |
ProHelperCZE:
Máš class Neco $trida = new Trida(); |
||
ProHelperCZE Profil * |
#5 · Zasláno: 26. 10. 2013, 21:09:50
[#4] IdemeNaHavaj
Pokud jsi myslel, abych to dal na new Neco();, tak to jsem teď zkusil přeměnit, a furt to píše tu chybu. Ale píše to tu chybu na řádku s mt_rand.. |
||
IdemeNaHavaj Profil |
#6 · Zasláno: 26. 10. 2013, 21:12:18
ProHelperCZE:
tak to zmeň iba na mt_rand() bez čísiel vo vnútri, ak chceš čísla vo vnútri tak iba rand(1,10000) |
||
ProHelperCZE Profil * |
#7 · Zasláno: 26. 10. 2013, 21:15:39
[#6] IdemeNaHavaj
Divné, ani toto nefunguje. |
||
lorin Profil |
#8 · Zasláno: 26. 10. 2013, 22:24:09
Co třeba takhle:
<?php class Neco { // Uchovává náhodné číslo předané do instance třídy private $promenna; // Kontruktor třídy public function __construct($argument) { // Předaný argument nastaví jako obsah privátní proměnné "promenna" $this->promenna = $argument; } // Vrací náhodné číslo, které bylo třídě přidáno při vytvoření public function ZjistiNahodneCislo() { return $this->promenna; } } // Vygeneruje náhodné číslo od nuly od 1000 $num = mt_rand(0, 1000); // Vytvoření nové instance. // Předá se náhodné číslo, které jsme si vygenerovali $trida = new Neco($num); // Vypíšeme si náhodné číslo ( bude stejné jako obsah $num) echo $trida->ZjistiNahodneCislo(); ?> Chyba dle mého byla v nastavení proměnné jako defaultní hodnoty argumentu konstruktoru: private __construct($a = $b) //špatně private __construct($a = "a") // dobře Defaultní hodnota musí (dle mého názoru) být konstantní. |
||
Tori Profil |
#9 · Zasláno: 26. 10. 2013, 22:27:40
ProHelperCZE:
1. Při inicializaci proměnné třídy je povolené použít pouze konstantní hodnotu. Tj. žádné funkce nebo proměnné. viz manuál 2. Použít proměnnou $num jako výchozí hodnotu tímto způsobem nelze. Dejte jako výchozí hodnotu nulu a do konstruktoru přidejte podmínku, že pokud je $promenna menší než 1, tak se zavolá mt_rand. |
||
ProHelperCZE Profil * |
#10 · Zasláno: 26. 10. 2013, 22:35:27
|
||
Časová prodleva: 10 let
|
0