execute_anything()
==================

FUNKTION
--------
::

    protected mixed execute_anything(mixed fun, mixed args, ...)

DEFINIERT IN
------------
::

    /std/util/executer.c

ARGUMENTE
---------
::

    mixed fun        auszufuehrende Funktion/Array/Closure ... anything
    mixed args       weitere Argumente, werden weiter uebergeben

BESCHREIBUNG
------------
::

    Fuehrt "alles" aus:

    

    'fun' kann sein:
    - eine Closure
      [funcall(fun, args, ...)]
    - einen String als Funktion im Objekt
      [call_other(this_object(), fun, args, ...)]
    - ein Array mit Objekt/Objektnamen + Funktion als Aufruf der Funktion am
      Objekt/Objektnamen:
      [call_other(array[0], array[1], args...)]

    Wird execute_anything() aus dem restriction_checker gerufen, wird als
    erster Parameter immer das gepruefte Living uebergeben.

BEMERKUNGEN
-----------
::

    Es kann sich anbieten, die gerufene Funktion mit varargs-Argumenten zu
    gestalten, damit ihr mehr Argumente uebergeben werden koennen als in der
    Funktionsdefinition angegeben sind. 

    Der Restriktionspruefer (/std/restriction_checker) versteht im Falle eines
    Arrays mit Objekt/Objektnamen + Funktion auch ein Array mit mehr als 2
    Elementen. Die weiteren Elemente werden dann zu weiteren Argumenten der
    gerufenen Funktion. Hierbei wird <pl> ggf. aber als erstes Argument vor
    alle anderen eingefuegt.

SIEHE AUCH
----------
::

    check_restrictions, varargs

31.12.2013, Zesstra