Nette\Web\Html – Object id #200

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
piler
Člen | 111
+
0
-

Ahojte,

na svojom localnom stroji a dalsich hostingoch funguje pouzite tejto html pomocky v pohode, ale narazil som na problem na dalsom hostingu. Miesto HTML tagov mi to vracia spat „Object id #200“ a podobne cisla. Skumanim so zistil, ze som nevolal metodu render() ale som to pretypoval na string pred vystupom. Len je zaujimave, ze na tych predoslych hostingoch to slape v pohode.

Akurat pozeram, ze na tom „problemovom“ hostingu je verzia PHP 5.1.6. Moze byt ten problem sposobeny verziou?

Dik

David Grudl
Nette Core | 8218
+
0
-

Je to verzí PHP. V PHP < 5.2 je potřeba objekt renderovat metodou $el->render().

piler
Člen | 111
+
0
-

David Grudl napsal(a):

Je to verzí PHP. V PHP < 5.2 je potřeba objekt renderovat metodou $el->render().

Dik moc. Zistil som, ze aj pathinfo() nevracia filename vo verzii nizsej ako 5.2, takze som poziadal o upgrade.

OT: vedel by si mi vysvetlit, resp. dal odkaz, lebo celkom dobre nerozumiem preco echo $el vypise HTML tag, ale print_r($el) vypise objekt? Dik

romansklenar
Člen | 655
+
0
-

Pokud na objektu Html zavoláš echo, provede se automatické přetypování na řetězec metodou __toString(), která volá metodu render(). Verze <5.2 právě myslím __toString() nepodporují, tak se musí volat render().

echo $el; // stejné jako $el->render();

Editoval romansklenar (17. 11. 2008 12:37)

piler
Člen | 111
+
0
-

romansklenar napsal(a):

echo $el; // stejné jako $el->render();

Dik moc za nakopnutie. Uz som nasiel viac info ;).