PHP Funktionen für Fortgeschrittene

Gepostet am Dezember 18, 2011

Wertrückgabe einer Funktion mit Return
Um einen Parameter als Referenz zu übergeben, schreiben Sie ein kaufmännisches Uns (&, Ampersond) davor.

By Value — Orginal wird auch nach veränderung der übergebenen Variable nicht veränndert
By Referenz — Referenz auf das Orginal, Orginal wird nach veränderung in Funktion geändert

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//** Referenz****************************************
        //Bsp 1:
	function ausgabe(&$par) {
	  $par .= " Welt";
	}
	$text = "Hallo";
	ausgabe ($text);
	echo $text;	// Ausabe Hallo Welt
 
        //Bsp 2:
	function ausgabe($par) {
	  $par .= " Welt";
	}
	$text = "Hallo";
	ausgabe (&$text);
	echo $text;	// Ausabe Hallo Welt
 
 
//** Funktion mit Vorgabewert****************************************
 
	//Wenn nicht immer ein Parameter übergeben wird kann 
        //ein Standardwert festgelegt werden
 
	function ausgabe($par = "Standard") {
	    return $par;
	}
	ausgabe ();		//Ausgabe: Standard
	ausgabe ("Exklusiv");   //Ausgabe: Exklusiv
 
 
 
//** Funktion Flexiebler Anzahl an Parametern****************************************
 
	//func_num_args()  -- gibt Anzahl der übergeben Parameter aus
 
	function funktion() {
	  $elements = func_num_args();
	  echo $elements; 	//Ausgabe: 1
	}
	funktion ("Test");
 
 
	//func_get_args()  -- Liefert Array mit den übergebenen Parametern
 
	function funktion() {
	  $elements = func_get_args();
	  echo $elements[0]; 	//Ausgabe: Test
	}
	funktion ("Test");
 
 
	//func_get_args(Index)  -- Zugriff auf übergebenen Parameter ohne Umweg über Array
 
	function funktion() {
	  $elements = func_get_args(0);
	  echo $elements; 	//Ausgabe: Test
	}
	funktion ("Test");
 
 
 
// normale Funktion übergabe + globale Variable**********************************
 
	function testen($menge) {
	    global $menge2;
            echo $menge2; // Ausgabe 3
            echo $menge;  // Ausgabe 2
	    $menge2 = 5;
	    $menge  = 5;
	}
	$menge = 2;
	$menge2 = 3;
	testen($menge);
        echo $menge;  // Ausgabe 2
        echo $menge2; // Ausgabe 5
 
 
	//mit $Globals kann auf alle Globalen Variablen zugegriffen werden
	function testen($menge) {
            echo $GLOBALS["menge2"];
        }
 
 
//** Rückgabe*******************************************************************
	function Summe($menge, $preis) {
	  $ergebnis = $menge * $preis;
	  return $ergebnis;
	}
	$summe2 = Summe(10,1.2);
	echo "<p>$summe2";
 
 
//** Mehrere Rückgabewerte*******************************************************************
	//bei der Rückgabe von mehreren Werten wird eine Array verwendet
	function Funktion() {
	  $ergebnis = array(1,2,3);
	  return $ergebnis;
	}
	print_r (Funktion());
 
 
//** Rückgabe als Referenz*******************************************************************
	$autore = "Marcel";
 
	function &Funktion(&$autore) {
	  $autore = "Morle";
	  return $autore;
	}
	echo Funktion($autore); //Ausgabe: Morle
 
 
//** Funktionsname in Variable Speichern*******************************************************************
	function ausgabe($par) {
	  echo $par;
	}
	$funktionsname = "ausgabe";
	$funktionsname("Hallo");
 
	is_callable($funktionsname); //ausabe: true
 
	//zum testen ob eine Variale eine aufrufbare Funktion enthält, 
        //kann mit "is_callable(Variable)" getestet werden (true / false)
 
 
//** REKURSIVE FUNKTIONEN*******************************************************************
	//rekorsive Funktionen rufen sich selbst auf
 
	funktion fakultaet($i) {
	  if ($i > 0) {
	    return $i * akultaet($i - 1);
	  else {
	    return 1;
	  }
	}
	echo fakultaet(5);
 
	//Das selbe Resultat hätte auch mit einer Schleife erreicht werden können
 
	$erg = 1;
	for ($i = 5; $i > 0; $i--) {
	  $erg *= $i;
	}
	echo $erg;
 
 
//** HILFREICHES UND NÜTZLICHES*******************************************************************
 
        //Prüft ob eine Funktion existiert
	function_exists ("funktionsmane");                              
 
        //erstellt dynamisch eine Funktion
	$funktion = create_function('$par', 'echo "Hallo" .$par;');	
	$funktion("Welt"); 
 
        //ruft Funktion auf, wird hauptsächlich eingesetzt wenn Parameter dynmaisch gebildet werden
	call_user_func(Funktionsname, Parameter1, Parameter2)		
	call_user_func_array(Funktionsname, Parameterarray)

Tags: , ,

Leave a Reply

 

Posts of Current Category



Facebook: