Diskuze: chyba "nenačtené třídy"

PHP PHP chyba "nenačtené třídy" American English version English version

Avatar
Michal Žůrek (misaz):

Ahoj, php mi hodilo:

Notice: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Souradnice" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in D:\htdocs\machr 37\sample.php on line 15

Nevíte co tou chybou může myslet?

Odpovědět 12.9.2013 20:28
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michal Žůrek (misaz):

jinak on ten script funguje, ale zajimalo by mě, proč to vyhodil.

Nahoru Odpovědět 12.9.2013 20:30
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Kit:

Notice: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Souradnice" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in D:\htdocs\machr 37\sample.php on line 15

Chce po tobě, abys měl deklaraci třídy Souradnice před voláním funkce unserialize(), která vytváří objekt této třídy.

Nahoru Odpovědět 12.9.2013 20:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

já ale žádnou takovou metadu nevolám.

Nahoru Odpovědět 12.9.2013 20:39
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

Prostě se snažíš pracovat s nekompletním objektem třídy Souradnice. Asi ti v konstruktoru chybí něco důležitého - například volání konstruktoru rodiče.

Nahoru Odpovědět 12.9.2013 20:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

problém je v tom že třída Souradnice vypadá takto:

class Souradnice {
        public $x;
        public $y;
        function __construct($x, $y) {
                $this->x = $x;
                $this->y = $y;
        }
}
Nahoru Odpovědět 12.9.2013 20:47
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michal Žůrek (misaz):

a už vůbec ne na řádku 15 (a 16, tam je stejná chyba)

15: imagefilledrectangle($this->obrazek, 0, 0 , 100, 100,imagecolorallocate($this->obrazek, 255, 255, 255));
16: for ($i = 0; $i < 10; $i++) {
Editováno 12.9.2013 20:54
Nahoru Odpovědět 12.9.2013 20:53
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michal Žůrek (misaz):

už jsme na to přišel, já jsem v bočním souboru (pro testování) zapoměl přejmenovat proměnnou. Nicméně díky za pomoc a vysvětlení..

Nahoru Odpovědět 12.9.2013 20:59
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

Jsem rád, že nejsem jediný, kdo píše testy :)

Stejně je to zvláštní vidět, jak má někdo nastavený tabulátor na 8 mezer. Zvykl jsem si na 4 mezery - jen v jazyku Haml používám dvě.

Nahoru Odpovědět 12.9.2013 21:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.