Autor | Zpráva | ||
---|---|---|---|
Vader Profil |
#1 · Zasláno: 10. 8. 2011, 17:10:40
V dole uvedenom scripte mi vypíše
TEXT TEXT TEXT Catchable fatal error: Object of class nazov could not be converted to string in C:\xampp\htdocs\Music\test.php on line 13 a čo upraviť aby to fungovalo ? <? class nazov{ function nazov() { echo nazov::text(); } function text() { return "TEXT TEXT TEXT"; } } echo(new nazov()); |
||
etexweb Profil |
#2 · Zasláno: 10. 8. 2011, 17:14:10 · Upravil/a: etexweb
|
||
Joker Profil |
#3 · Zasláno: 10. 8. 2011, 17:15:28
Vader:
„Object of class nazov could not be converted to string“ „Objekt třídy nazov nemůže být převeden na řetězec“, to zvládne i Google Translate. Na posledním řádku se do echo dává objekt, zatímco správný vstup pro echo je text. |
||
Majkl578 Profil |
#4 · Zasláno: 10. 8. 2011, 17:57:48 · Upravil/a: Majkl578
Vader:
1. Aby to fungovalo, třída by musela obsahovat metodu __toString .
2. Konstruktory tříd se nepojmenovávají stejně jako třída samotná, nýbrž __construct .
3. Volat nestaticky definované metody staticky je špatně. 4. Při statickém volání metod stejné třídy se používá self /static .
5. PHP kód se začíná <?php , ne <? .
class Foo { public function __construct() { echo static::text(); } public static function text() { return "TEXT TEXT TEXT"; } } new Foo; |
||
Lamicz Profil |
#5 · Zasláno: 10. 8. 2011, 18:46:19
Jenom dodám, že static::text(); je pro PHP 5.3 a vyšší - Late Static Binding. Pro nižší verze se používalo self::
|
||
Časová prodleva: 14 let
|
0