Alexander (HH): print_r() für js?

Beitrag lesen

Moin Moin!

print_r()...

Neee, völlig klar, sowas print_r() zu nennen.

Erzeugt irgendwie so was ähnliches, so ich es richtig verstanden habe, wie Dumper() in Perl (Data::Dumper). Wobei mir der Unterschied zw. print_r und var_dump als PHP-Laie nicht erschließt...

PHP.net sagt:

print_r(), var_dump() and var_export() will also show protected and private properties of objects with PHP 5. Static class members will not be shown.

mixed print_r  ( mixed $expression  [, bool $return= false  ] )
void var_dump  ( mixed $expression  [, mixed $expression  [,  $...  ]] )

Lustigerweise gibt es dann auch noch var_export() ...

mixed var_export  ( mixed $expression  [, bool $return= false  ] )

... das analog D::D gültigen Code erzeugen soll, während die anderen Funktionen nur dem verzweifelten Nutzer irgendetwas Wirres hinrotzen, natürlich pro Funktion in einem eigenen Format. Oder auch nicht:

Prior to PHP 4.0.4, print_r() will continue forever if given an array or object that contains a direct or indirect reference to itself. An example is print_r($GLOBALS) because $GLOBALS is itself a global variable that contains a reference to itself.

Und var_export() erzeugt gelegentlich auch Müll:

var_export() does not handle circular references as it would be close to impossible to generate parsable PHP code for that. If you want to do something with the full representation of an array or object, use serialize().

Da stehen dann lustige Dinge wie

When serializing an object, methods are not lost anymore. Please see the Serializing Objects  for more information.

und

It is not possible to serialize PHP built-in objects.

Und spätestens das ist der Punkt, wo bei mir langsam die Schmerzen einsetzen und ich ganz schnell alles aus der Hand lege bzw. vom Schirm entferne, was mit PHP zu tun hat.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".