blob: 9c889f059703be3880c9fac78e9e778825bd3719 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001execute_anything()
2FUNKTION:
3 protected mixed execute_anything(mixed fun, mixed args, ...)
4
5DEFINIERT IN:
6 /std/util/executer.c
7
8ARGUMENTE:
9 mixed fun auszufuehrende Funktion/Array/Closure ... anything
10 mixed args weitere Argumente, werden weiter uebergeben
11
12BESCHREIBUNG:
13 Fuehrt "alles" aus:
14
15 'fun' kann sein:
16 - eine Closure
17 [funcall(fun, args, ...)]
18 - einen String als Funktion im Objekt
19 [call_other(this_object(), fun, args, ...)]
20 - ein Array mit Objekt/Objektnamen + Funktion als Aufruf der Funktion am
21 Objekt/Objektnamen:
22 [call_other(array[0], array[1], args...)]
23
24 Wird execute_anything() aus dem restriction_checker gerufen, wird als
25 erster Parameter immer das gepruefte Living uebergeben.
26
27BEMERKUNGEN:
28 Es kann sich anbieten, die gerufene Funktion mit varargs-Argumenten zu
29 gestalten, damit ihr mehr Argumente uebergeben werden koennen als in der
30 Funktionsdefinition angegeben sind.
31
32 Der Restriktionspruefer (/std/restriction_checker) versteht im Falle eines
33 Arrays mit Objekt/Objektnamen + Funktion auch ein Array mit mehr als 2
34 Elementen. Die weiteren Elemente werden dann zu weiteren Argumenten der
35 gerufenen Funktion. Hierbei wird <pl> ggf. aber als erstes Argument vor
36 alle anderen eingefuegt.
37
38SIEHE AUCH:
39 check_restrictions, varargs
40
4131.12.2013, Zesstra
42