phpbar.de logo

Mailinglisten-Archive

[php] Infos =?iso-8859-1?Q?=FCber?= Variable herausfinden?

[php] Infos =?iso-8859-1?Q?=FCber?= Variable herausfinden?

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Mon, 13 Sep 1999 09:55:47 +0200


Martin Ramsch wrote:
> Wie ihr seht, übergebe ich zur Zeit den Variablennamen einfach als
> String und SHOW holt sich den Wert dann per $GLOBALS[$name].

So macht es auch PHPLIB.

> Leider funktioniert das nicht, wenn ich z.B. direkt ein Array-Element
> sehen will:
>   $a[3] = 'abc';
>   SHOW('a[3]');
> Das geht nicht, weil so die Variable $GLOBALS['a[3]'] benutzt wird,
> die natürlich nicht existiert und leer ist, statt $GLOBALS['a'][3];

Auch in PHPLIB muß man sich das ganze Array ansehen.

> Nun aber meine erste Frage:
>   Hab' ich irgendeine Chance, von einer Variablenreferenz wieder auf
>   ihren Namen zurückzuschließen?
>   (Ich vermute, nein.)

Nein. Es gibt keine Referenzen in PHP3, darum muß man mit Namen arbeiten.

> Zweite Frage:
>   Wenn $a ein Objekt ist (is_object($a)==true), kann ich dann
>   irgendwie die Klassen-Definition herausfinden, oder zumindest,
>   welche Variablen zum Objekt gehören.

Nein, kannst Du nicht. Darum arbeitet PHPLIB mit dem $classname-Slot, damit es die Klasse eines Objektes bestimmen kann. PHPLIB arbeitet außerdem mit $persistent_slots, aber das ist in Deinem Fall nicht nötig, wie Du ja schon selbst herausgefunden hast.

> Ups, während des Tippens fand' ich eine Lösung!  Ich kann wie bei
> Arrays auch bei Objekten mit der each-Funktion über alle Elemente
> iterieren!  Nett ...  Ist das ein absichtliches Sprach-Feature
> oder 'is' halt gard' so'? :)

Nach Auskunft von Zeev "ist das halt grad so" und kann sich jederzeit ändern.

PHPLIB enthält eine Funktion freeze() als Teil von Session, die Du Dir vielleicht einmal ansehen möchtest und für Deine Debugging-Zwecke heraus operieren möchtest.

Kristian
-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.netuse.de/ (We have moved! Update your bookmarks!)


php::bar PHP Wiki   -   Listenarchive