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