Aula 01 - Introdução programação procedural
Programação procedural é a construção de procedimentos
para a execução de determinadas rotinas da aplicação.
Esses procedimentos são trechos de código reutilizável e
são chamados de métodos ou funções.

Aula 02 a 03 - Entendendo funções / Entendendo funções
- Parametros
Em PHP criamos funções com a sintaxe:
Declaramos parametros nas funções utilizando a mesma sintaxe de variáveis: $nome_do_parametro.
Para passar esses parametros ao executar a função podemos passar o valor do parametro diretamente ou precedido pelo nome do parametro: nome_do_parametro: valor

function nome_função() {
//código
}
//código
}
Declaramos parametros nas funções utilizando a mesma sintaxe de variáveis: $nome_do_parametro.
Para passar esses parametros ao executar a função podemos passar o valor do parametro diretamente ou precedido pelo nome do parametro: nome_do_parametro: valor
Aula 04 a 05 - Entendendo funções - Parametros
opcionais / Entendendo funções - Retorno
Podemos definir valores padrão para parametros para
evitar erros caso não sejam passados parametros na
chamada da função. Para isso basta atribuirmos o valor
padrão desejado no parametro ao criarmos a função.
Quando desejamos armazenar ou recuperar o valor de uma função em outra rotina utilizamos o return para encaminhar esse valor para o variável rotina que o executou.

Quando desejamos armazenar ou recuperar o valor de uma função em outra rotina utilizamos o return para encaminhar esse valor para o variável rotina que o executou.
Aula 06 a 07 - Scalar Types Hints / return types
declarations
O PHP é uma linguagem de tipagem fraca ou seja não faz
testes em tipos primitivos bastando ser possível a
execução de uma operação. Podemos entretanto forçar a
atribuição de tipos nas variáveis utilizando no início
do programa:
declare(strict_types=1)
Com isso podemos definir os tipos esperados nos parametros de funções. Podemos definir os parametros como int, string, bool e float.
Podemos declarar o tipo de retorno esperado na função definindo após a declaração dos parametros o tipo esperado precedido por :.
function nome_função(param1, param2): tipo_retorno {}
Nesse caso resultados do tipo boolean por exemplo são convertidos para '0'. No entanto essa opção não funciona se estivermos utilizando o strict_types=1 (nesse caso um booleano retorna erro).
Se quisermos aceitar null como retorno podemos preceder o tipo por '?'. Isso é possível também nos parametros.

declare(strict_types=1)
Com isso podemos definir os tipos esperados nos parametros de funções. Podemos definir os parametros como int, string, bool e float.
Podemos declarar o tipo de retorno esperado na função definindo após a declaração dos parametros o tipo esperado precedido por :.
function nome_função(param1, param2): tipo_retorno {}
Nesse caso resultados do tipo boolean por exemplo são convertidos para '0'. No entanto essa opção não funciona se estivermos utilizando o strict_types=1 (nesse caso um booleano retorna erro).
Se quisermos aceitar null como retorno podemos preceder o tipo por '?'. Isso é possível também nos parametros.
Aula 08 - Escopo de funções - Palavra reservada globals
Variáveis globais nã são acessíveis dentro de escopo de
função assim como variáveis no escopo da função não são
acessíveis fora delas. Para podermos acessar uma
variável global dentro de uma função podemosws utilizar
a palavra reservada global ou a super variável
$GLOBALS da seguinte forma:

$var_global = valor;
function nome_função(param) {
global $var_global;
rotina utilizando a $var_global
}
OU
function nome_função(param) {
rotina da função $GLOBALS['var_global']
}
function nome_função(param) {
global $var_global;
rotina utilizando a $var_global
}
OU
function nome_função(param) {
rotina da função $GLOBALS['var_global']
}
Aula 09 - Funções recursivas
Funções recursivas são funções que são reexecutadas
dentro dela mesma. Ela se comporta como em um loop e
portanto deve ser utilizada com uma lógica de
interrupção.

Aula 10 - Parametro por referencia x parametro por
valor
Por padrão o PHP recebe os parametros em variáveis por
valor, ou seja, quando passamos uma variável como
parametro em uma função passamos o valor absoluto da
variável. Asssim o valor só é alterado no escopo da
função.
Para passarmos o valor por referencia inserimos na frente do parametro o caractere &. Desse modo o que passamos é a referencia da variável na memória e assim seu valor é alterado no escopo global.

Para passarmos o valor por referencia inserimos na frente do parametro o caractere &. Desse modo o que passamos é a referencia da variável na memória e assim seu valor é alterado no escopo global.
Aula 11 a 12 - Funções anonimas / Herdando variáveis do
escopo anterior
Funções anonimas não tem nome e retornam seu valor
diretamente para uma variável.
Nas funções anonimas podemos utilizar as variáveis de escopo global utilizando a palavra reservada use(nome_variável_global) após a declaração dos parametros da função. Podemos passar as variáveis com use() por referencia utilizando o caractere $.

Nas funções anonimas podemos utilizar as variáveis de escopo global utilizando a palavra reservada use(nome_variável_global) após a declaração dos parametros da função. Podemos passar as variáveis com use() por referencia utilizando o caractere $.
Aula 13 - Funções anonimas - Callback
Funções de callback são funções passadas como parametro
em outra função. São utilizadas em algumas funções
nativas do PHP como por exemplo a
array_filter(array, callback). Pode ser passada
criando uma função anonima fora da função e passando sua
variável como parametro:
Podemos verificar se o valor passado em um parametro que exige uma função utilizando a função is_callable(). Esse função verifica se o valor recebido é executável ou é apenas uma variável primitiva.

$função_callback = function($parametro){
return valor
};
$saida = array_filter($array, $função_callback);
Podemos também passar a função diretamente no parametro:
return valor
};
$saida = array_filter($array, $função_callback);
$saida = array_filter($array,
function($parametro){
return valor
});
return valor
});
Podemos verificar se o valor passado em um parametro que exige uma função utilizando a função is_callable(). Esse função verifica se o valor recebido é executável ou é apenas uma variável primitiva.