SYNOPSIS
        #include <functionlist.h>

        string variable_exists(string str [, int flags])
        string variable_exists(string str, object obj [, int flags])

BESCHREIBUNG
        Sucht eine Varialbe <str> in this_object() oder (falls angegeben)
        im Objekt <obj>.

        Das Resultat ist der Name des Programms, in dem die Variable definiert
        ist. Das kann entweder object_name(obj) sein oder der Name eines
        geerbten Programms. Wenn sich der Treiber nicht im Compat-Modus
        befindet, beginnt der zurueck gelieferte Name immer mit '/'.

        Wird <flags> NAME_HIDDEN gesetzt, so liefert variable_exists() auch
        Informationen ueber Variablen vom Typ "static" und "protected" in
        anderen Objekten. Es ist nicht moeglich, Informationen ueber "private"
        deklarierte Variablen zu erhalten.

        Wird die Variable nicht gefunden (weil sie nicht existiert oder weil
        sie fuer das aufrufende Objekt nicht sichtbar sind), wird 0 zurueck
        geliefert.

GESCHICHTE
        Eingefuehrt in LDMud 3.2.10.

SIEHE AUCH
        function_exists(E), variable_list(E)
