Une écriture peu connue permet aussi d’exécuter des méthodes d’une classe PHP. Si l’on demande un filtre « x::y », SPIP cherchera une classe PHP « filtre_x » possédant une fonction « y » exécutable. S’il ne trouve pas, il cherchera une classe « filtre_x_dist » puis enfin une classe « x ».
[(#BALISE|class::methode)]
Exemple
Imaginons une classe PHP définie comme ci-dessous. Elle contient une fonction (récursive par ailleurs) qui permet de calculer une factorielle (x! = x*(x-1)*(x-2)*...*3*2*1
).
class Math{
function factorielle($n){
if ($n==0)
return 1;
else
return $n * Math::factorielle($n-1);
}
}
Elle peut être appelée comme ceci :
[(#VAL{9}|Math::factorielle)]
// renvoie 362880