2 votes

Comment extraire le tableau $parameters de la méthode __callStatic() pour le convertir ensuite en chaîne de caractères à l'aide de la méthode __ToString () ?

class Concatenator
{
    private static $string = [];

    public static function __callStatic($method, $parameters)
    {   
        self::$string = $parameters;
    }

    public function __toString()
    {
        return str_replace(' ', '+', strtolower(self::$string));
    }
}

$concatenated = Concatenator::prepareString('I am concatenated');

echo $concatenated;

Je n'arrive pas à trouver comment transmettre la valeur de la magie. __callStatic() à la méthode magique __toString() .

Dites-moi ce qui ne va pas dans ce code. Pourquoi est-ce que __toString() voir self::$string ?

0voto

Lajos Arpad Points 5986

$string est un array et non un String :

private static $string = [];

donc vous ne pouvez pas le passer à strtolower par lui-même. Vous pouvez changer son initialisation en String :

private static $string = "";

et de passer $parameters en tant que String au lieu d'un tableau. Ou, s'il est correct d'avoir un array vous devrez alors utiliser l'index approprié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X