PHP__callStatic

Resumo : neste tutorial, você aprenderá sobre o __callStatic()método mágico do PHP e como usá-lo para tornar seu código mais flexível.

Introdução ao método mágico PHP __callStatic()

PHP invoca o __callStatic()método quando você invoca um método estático inacessível de uma classe .

O seguinte mostra a sintaxe do __callStatic()método:

public static __callStatic(string $name, array $arguments): mixedLinguagem de código:  PHP  ( php )

O __callStatic()tem dois parâmetros: $namee $arguments.

Quando você chama um método estático inacessível de uma classe, o PHP invoca automaticamente o __callStatic()método com os seguintes argumentos:

  • $nameé o nome do método estático.
  • $argumentsé uma série de argumentos.

Exemplo de método mágico PHP __callStatic()

O exemplo a seguir define uma classe chamada Str:

<?php

class Str
{
    private static $methods = [
        'upper' => 'strtoupper',
        'lower' => 'strtolower',
        'len' => 'strlen'
    ];

    public static function __callStatic(string $method, array $parameters)
    {
        if (!array_key_exists($method, self::$methods)) {
            throw new Exception('The ' . $method . ' is not supported.');
        }

        return call_user_func_array(self::$methods[$method], $parameters);
    }
}

echo Str::lower('Hello') . '<br>';
echo Str::upper('Hello') . '<br>';
echo Str::len('Hello') . '<br>';Linguagem de código:  PHP  ( php )

Saída:

hello
HELLO
5Linguagem de código:  PHP  ( php )

Como funciona.

A classe Str é uma propriedade estática privada chamada $methods. É um array que contém o mapeamento do nome do método e das funções de string integradas.

Quando você chama um método estático que não existe na classe Str, o PHP invoca automaticamente o __callStatic()método mágico.

O __callStatic()verifica se o nome do método estático é suportado procurando as chaves do $methodsarray. Irá lançar uma exceção se o método não estiver nas chaves do $methodsarray. Caso contrário, o __callStatic()método chamará a função de string correspondente.

Resumo

  • O __callStatic()método mágico é chamado automaticamente quando um método inacessível é invocado.

Deixe um comentário

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