Argumentos nomeados em PHP

Resumo : neste tutorial, você aprenderá sobre os argumentos nomeados do PHP e como usá-los de maneira eficaz em seu código.

Introdução aos argumentos nomeados do PHP

Desde o PHP 8.0, você pode usar argumentos nomeados para funções. Os argumentos nomeados permitem que você passe argumentos para uma função com base nos nomes dos parâmetros , em vez das posições dos parâmetros.

O exemplo a seguir define uma função que encontra a posição da primeira ocorrência de uma substring em uma string:

<?php

function find($needle, $haystack)
{
    return strpos($haystack, $needle);
}    
Linguagem de código:  HTML, XML  ( xml )

Para chamar a find()função, você passa os argumentos com base nas posições dos parâmetros como este:

find('awesome', 'PHP is awesome!');Linguagem de código:  JavaScript  ( javascript )

Neste caso, $needleé 'awesome'e $haystacké 'PHP is awesome!'.

No entanto, a chamada de função não é aparente. Por exemplo, você não sabe qual argumento é a agulha e qual argumento é o palheiro.

Às vezes, você pode cometer um erro acidentalmente ao passar os argumentos na ordem errada. Por exemplo:

find ( 
    'PHP is awesome!',
    'awesome'
);Linguagem de código:  JavaScript  ( javascript )

Isso é problemático e muito difícil de solucionar.

Para evitar isso, você pode adicionar comentários aos argumentos como este:

find (
    'awesome',        // needle
    'PHP is awesome!' // haystack
);Linguagem de código:  JavaScript  ( javascript )

O comentário torna o código mais claro. No entanto, não é robusto.

Para melhorar isso, o PHP 8.0 introduziu os argumentos nomeados que permitem especificar os nomes dos parâmetros ao passar argumentos:

find (
    $needle : 'awesome',
    $haystack : 'PHP is awesome!'
);Linguagem de código:  PHP  ( php )

Como você está usando os nomes dos parâmetros, as posições não são necessárias. Por exemplo, você pode trocar os parâmetros assim:

find(
    $haystack :'PHP is awesome!',
    $needle : 'awesome'
);Linguagem de código:  PHP  ( php )

Deve funcionar corretamente.

Ignorando argumentos padrão

O seguinte define uma função que cria um elemento âncora ( <a>) a partir de texto, href, título e destino:

<?php

function create_anchor(
    $text,
    $href = '#',
    $title = '',
    $target = '_self'
)
{
    $href = $href ? sprintf('href="%s"', $href) : '';
    $title = $title ? sprintf('title="%s"', $title) : '';
    $target = $target ? sprintf('target="%s"', $target) : '';

    return "<a $href $title $target>$text</a>";
}Linguagem de código:  HTML, XML  ( xml )

Para criar um link com o alvo é _blank, você deve especificar todos os argumentos padrão até aquele que deseja alterar. Por exemplo:

$link = create_anchor(
    'PHP Tutorial', 
    'https://tutorials.acervolima.com/tutorial-de-php',
    '',
    '_blank'
);

echo $link;Linguagem de código:  PHP  ( php )

Saída:

<a href="https://tutorials.acervolima.com/tutorial-de-php"  target="_blank">PHP Tutorial</a>
Linguagem de código:  HTML, XML  ( xml )

Neste exemplo, você precisa passar o espaço (”) para o terceiro argumento. Se você usar os argumentos nomeados, não será necessário especificar todos os padrões. Por exemplo:

 $link = create_anchor(
    text : 'PHP Tutorial', 
    href : 'https://tutorials.acervolima.com/tutorial-de-php',
    target: '_blank'
);Linguagem de código:  PHP  ( php )

Misturando argumentos nomeados com argumentos posicionais

PHP permite que você chame uma função usando argumentos posicionais e argumentos nomeados. E você precisa colocar os argumentos nomeados após os argumentos posicionais. Por exemplo:

$link = create_anchor(
    'PHP Tutorial', 
    'https://tutorials.acervolima.com/tutorial-de-php',
     target: '_blank'
);Linguagem de código:  PHP  ( php )

Neste exemplo:

  • O texté 'PHP Tutorial'.
  • O hrefé 'https://tutorials.acervolima.com/tutorial-de-php'.
  • E o targeté '_blank'.

Se você colocar os argumentos nomeados antes dos argumentos posicionais, receberá um erro. Por exemplo:

create_anchor(
    target : '_blank',
    'PHP Tutorial', 
    'https://tutorials.acervolima.com/tutorial-de-php'
);Linguagem de código:  JavaScript  ( javascript )

Erro:

Cannot use positional argument after named argumentLinguagem de código:  PHP  ( php )

Resumo

  • Use argumentos nomeados do PHP para passar argumentos para uma função com base nos nomes dos parâmetros.
  • Coloque os argumentos nomeados após os argumentos posicionais nas chamadas de função.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *