Autor Zpráva
Vader
Profil
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
Čo tak naštudovať Functions a spraviť to sám ?

napr. zmeň posledný riadok na $nazov = new nazov();
Joker
Profil
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
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
Jenom dodám, že static::text(); je pro PHP 5.3 a vyšší - Late Static Binding. Pro nižší verze se používalo self::

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