/
functions.php
122 lines (94 loc) · 1.89 KB
/
functions.php
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
<html>
<head>
<title>Functions</title>
</head>
<body>
<h1>functions</h1>
<?php function column() { ?>
<td>column</td>
<?php } ?>
<?php
for ($i = 0; $i < 10 ; $i++)
column();
?>
</body>
</html>
<?php
// nested function
function before($str_b4) {
echo "1 $str_b4 ";
function after($str_af) {
echo "3 $str_b4 ";
echo "4 $str_af ";
}
echo "2 TWO ";
}
//after("HEYO");
//before("FOO");
//before("YO");
//echo " STOP! ";
//after("SUP");
//
//after("OH");
//before("MY");
// global variable
$yo = 'yo';
function hey() {
global $yo;
echo $yo . '!';
}
hey();
// static
function heyo() {
static $str = 'hey';
$str .= 'o';
echo "<br/>$str";
}
for ($i = 0; $i < 4; $i++)
heyo();
// pass-by-reference
function doubler(&$value) {
$value = $value << 1;
}
$a = 3;
doubler($a);
echo "<br/>$a";
doubler($a);
echo "<br/>$a";
doubler($a);
echo "<br/>$a";
doubler($a);
echo "<br/>$a";
// variable parameters
function print_all() {
$params = func_get_args();
foreach($params as $param)
echo "<br/>$param";
}
print_all('a', 'e', 'i', 'o', 'u');
// return by reference
$names = array('a man', 'b man', 'c man');
function &getNames() {
global $names;
return $names;
}
$names_ref =& getNames();
$names_ref[0] = 'p-man';
echo "<br/>$names[0]";
// variable function
$func = 'print_all';
$func('yo', 'momma', 'so', 'fat');
// anonymous function
$array = array("really long string here, boy", "this", "middling length", "larger");
usort($array, function($a, $b) {
return strlen($a) - strlen($b);
});
print_r($array);
$sortOption = 'desc';
usort($array, function($a, $b) use ($sortOption) {
if ($sortOption == 'desc')
return strlen($b) - strlen($a);
else
return strlen($a) - strlen($b);
});
print_r($array);