-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.php
155 lines (130 loc) · 4.06 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
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
<?php
// Funções simples.
function somar($a, $b) {
return $a + $b;
}
function salario() {
return 946.00;
}
echo "José recebeu 3 salários no total de: " . (salario()*3) . "<br><br>";
function ola($texto = "mundo", $periodo = "Bom dia") {
return "Olá $texto! $periodo. <br>";
}
echo ola();
echo ola("","Boa noite");
echo ola("Vitor","");
function ola2() {
$argumentos = func_get_args();
return $argumentos;
}
var_dump(ola("Bom dia", 10));
echo "<br><br>";
// Parâmetro por valor.
$a = 10;
function trocaValor($a) {
$a += 50;
return $a;
}
echo trocaValor($a); //60
echo "<br>";
echo $a; //10
echo "<br>";
// Parâmetro por referência.
function trocaValor_2(&$a) {
$a += 50;
return $a;
}
echo trocaValor_2($a); //60
echo "<br>";
echo $a; //60
echo "<br>";
// Declaração de tipos escalares e de retorno - Incluído no PHP7.
function soma_2(int ...$valores):int {
return array_sum($valores);
}
echo soma_2(2, 2); //4
echo "<br>";
echo soma_2(25, 33); //58
echo "<br>";
echo soma_2(1.5, 33); //34 - Ignorando casas decimais, por ter definido tipo como inteiro.
echo "<br><br>";
// Funções recursivas.
$hierarquia = array(
array(
'nome_cargo' => 'CEO',
'subordinados' => array(
array(
'nome_cargo' => 'Diretor comercial',
'subordinados' => array(
array(
'nome_cargo' => 'Gerente de vendas'
)
)
),
array(
'nome_cargo' => 'Diretor financeiro',
'subordinados' => array(
array(
'nome_cargo' => 'Gerente de contas a pagar',
'subordinados' => array(
array(
'nome_cargo' => 'Supervisor de pagamentos'
)
)
),
array(
'nome_cargo' => 'Gerence de compras',
'subordinados' => array(
array(
'nome_cargo' => 'Supervisor de suprimentos'
)
)
)
)
),
array(
'nome_cargo' => 'Diretor de tecnologia',
'subordinados' => array(
array(
'nome_cargo' => 'Gerente de tecnologia',
'subordinados' => array(
array(
'nome_cargo' => 'Supervisor de tecnologia',
'subordinados' => array(
array(
'nome_cargo' => 'Analista de TI'
)
)
)
)
)
)
),
)
)
);
function exibe($cargos) {
$html = '<ul>';
foreach ($cargos as $cargo) {
$html .= '<li>';
$html .= $cargo['nome_cargo'];
if (isset($cargo['subordinados']) && count($cargo['subordinados']) > 0) {
$html .= exibe($cargo['subordinados']);
}
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}
echo exibe($hierarquia);
// Funções anônimas.
function anon($callback){
$callback();
}
anon(function() {
echo "Fim";
});
$fn = function($a){
var_dump($a);
};
$fn("Fim");