No internet connection
  1. Home
  2. Dúvidas Gerais

Funções em PHP.

Por Nubia Gonçalves Tirabassi @NubiaSantos
    2023-09-20 19:33:20.379Z

    Meninas,

    Para complementar com as aulas de PHP trouxe parte de um material que tenho estudado sobre funções e como são declaradas, espero que possa auxiliar vocês.

    Definindo funções
    A sintaxe básica para definir uma função é:
    function nome_da_função([arg1, arg2, arg3]) {
    Comandos;
    ... ;
    [return ];
    }
    Qualquer código PHP válido pode estar contido no interior de uma função. Como a
    checagem de tipos em PHP é dinâmica, o tipo de retorno não deve ser declarado, sendo necessário que o
    programador esteja atento para que a função retorne o tipo desejado. É recomendável que esteja tudo bem
    documentado para facilitar a leitura e compreensão do código. Para efeito de documentação, utiliza-se o
    seguinte formato de declaração de função:
    tipo function nome_da_funcao(tipo arg1, tipo arg2, ...);
    Este formato só deve ser utilizado na documentação do script, pois o PHP não aceita a
    declaração de tipos. Isso significa que em muitos casos o programador deve estar atento ao tipos dos valores
    passados como parâmetros, pois se não for passado o tipo esperado não é emitido nenhum alerta pelo
    interpretador PHP, já que este não testa os tipos.
    Valor de retorno
    Toda função pode opcionalmente retornar um valor, ou simplesmente executar os comandos
    e não retornar valor algum.
    Não é possível que uma função retorne mais de um valor, mas é permitido fazer com que
    uma função retorne um valor composto, como listas ou arrays.
    Argumentos
    É possível passar argumentos para uma função. Eles devem ser declarados logo após o nome
    da função, entre parênteses, e tornam-se variáveis pertencentes ao escopo local da função. A declaração do
    tipo de cada argumento também é utilizada apenas para efeito de documentação.
    Exemplo:
    function imprime($texto){
    echo $texto;
    }
    imprime(“teste de funções”);
    Passagem de parâmetros por referência
    Normalmente, a passagem de parâmetros em PHP é feita por valor, ou seja, se o conteúdo da
    variável for alterado, essa alteração não afeta a variável original.
    Exemplo:
    function mais5($numero) {
    $numero += 5;
    }
    $a = 3;
    mais5($a); //$a continua valendo 3
    No exemplo acima, como a passagem de parâmetros é por valor, a função mais5 é inútil, já
    que após a execução sair da função o valor anterior da variável é recuperado. Se a passagem de valor fosse
    feita por referência, a variável $a teria 8 como valor. O que ocorre normalmente é que ao ser chamada uma
    função, o interpretador salva todo o escopo atual, ou seja, os conteúdos das variáveis. Se uma dessas variáveis
    for passada como parâmetro, seu conteúdo fica preservado, pois a função irá trabalhar na verdade com uma
    cópia da variável.7 Porém, se a passagem de parâmetros for feita por referência, toda alteração que a função
    realizar no valor passado como parâmetro afetará a variável que o contém.
    Há duas maneiras de fazer com que uma função tenha parâmetros passados por referência:
    indicando isso na declaração da função, o que faz com que a passagem de parâmetros sempre seja assim; e
    também na própria chamada da função. Nos dois casos utiliza-se o modificador “&”. Vejamos um exemplo
    que ilustra os dois casos:
    function mais5(&$num1, $num2) {
    $num1 += 5;
    $num2 += 5;
    }
    $a = $b = 1;
    mais5($a, $b); /* Neste caso, só $num1 terá seu valor
    alterado, pois a passagem por referência está definida na
    declaração da função. /
    mais5($a, &$b); /
    Aqui as duas variáveis terão seus valores
    alterados. /
    Argumentos com valores pré-definidos (default)
    Em PHP é possível ter valores default para argumentos de funções, ou seja, valores que serão
    assumidos em caso de nada ser passado no lugar do argumento. Quando algum parâmetro é declarado desta
    maneira, a passagem do mesmo na chamada da função torna-se opcional.
    function teste($php = “testando”) {
    echo $php;
    }
    teste(); // imprime “testando”
    teste(“outro teste”); // imprime “outro teste”
    É bom lembrar que quando a função tem mais de um parâmetro, o que tem valor default deve
    ser declarado por último:
    function teste($figura = circulo, $cor) {
    echo “a figura é um “. $figura. “ de cor “ $cor;
    }
    teste(azul);
    /
    A função não vai funcionar da maneira esperada, ocorrendo
    um erro no interpretador. A declaração correta é: */
    function teste2($cor, $figura = circulo) {
    echo “a figura é um “. $figura. “ de cor “ $cor;
    }

    • 8 respostas
    1. Janine Oliveira @Janine
        2023-09-20 22:03:06.635Z

        Muito bom!

        1. Em resposta aNubiaSantos:
          Luana Souza @luanah.souzza
            2023-09-21 16:36:54.827Z

            Muito bom esse conteúdo sobre funções, gostei muito!

            1. Em resposta aNubiaSantos:
              Ana Karolina Souza @anakarolina
                2023-09-22 16:57:49.985Z

                Assisti esse vídeo aqui de funções e também achei bem legal.

                1. Em resposta aNubiaSantos:
                  @Grasiele
                    2023-09-21 12:00:48.274Z

                    Nubia amo suas postagens

                    1. Em resposta aNubiaSantos:
                      Karine Barbosa Farias @KarineBF
                        2023-09-21 20:15:58.391Z

                        Bastante informativo e abrange vários aspectos importantes.

                        1. Em resposta aNubiaSantos:
                          lira gabriella soares nunes @lira
                            2023-09-22 22:27:13.253Z

                            muito bacana! essas postagens ajudam demais. <3

                            1. Em resposta aNubiaSantos:
                              Ana Paula Gomes Guimarães @anaapgg
                                2023-09-29 23:53:55.335Z

                                Muito bom o material sobre funções!

                                1. Em resposta aNubiaSantos:
                                  Renata Rodrigues @Usarname
                                    2023-10-09 17:05:55.666Z

                                    Muito bom esse conteudo. Parabens!