Question

hey, j'utiliser array_map de temps en temps d'écrire des méthodes récursives. par exemple

function stripSlashesRecursive( $value ){

    $value = is_array($value) ?
        array_map( 'stripSlashesRecursive', $value) :
    stripslashes( $value );
    return $value;
}

Question:

dire que je veux mettre cette fonction dans une classe statique, comment pourrais-je utiliser de nouveau array_map à la portée de la méthode statique dans la classe comme Désinfecter :: stripSlashesRecursive (); Je suis sûr que cela est simple, mais je ne peux pas juste figgure dehors, regarda php.net ainsi.

Était-ce utile?

La solution

Lors de l'utilisation d'une méthode de classe comme un rappel pour des fonctions comme array_map() et usort(), vous devez envoyer le rappel sous forme de tableau à deux valeurs. La 2ème valeur est toujours le nom de la méthode en tant que chaîne. La 1ère valeur est le contexte (nom de la classe ou de l'objet)

// Static outside of class context
array_map( array( 'ClassName', 'methodName' ), $array );

// Static inside class context
array_map( array( __CLASS__, 'methodName' ), $array );

// Non-static outside of object context
array_map( array( $object, 'methodName' ), $array );

// Non-static inside of object context
array_map( array( $this, 'methodName' ), $array );

Autres conseils

array_map prend callback en tant que premier paramètre.

Et un rappel à une méthode statique est écrit comme ceci:

array('classname', 'methodname')


Ce qui signifie que, dans votre cas, vous pouvez utiliser:

array_map(array('stripSlashesRecursive', ''), $value);


Pour plus d'informations sur callbacks , voir cette section du manuel PHP: noreferrer pseudo-types et les variables utilisées dans cette documentation -. rappel

array_map( array('Sanitize', 'stripSlashesRecursive'), $value) ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top