PHP - Paradigma Procedural

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:
function nome_função() {
//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.
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.
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']
}
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.
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 $.
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:
$função_callback = function($parametro){
return valor
};
$saida = array_filter($array, $função_callback);
Podemos também passar a função diretamente no parametro:
$saida = array_filter($array, function($parametro){
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.