Filters afgeleid van PHP classes

Een minder bekende coderingstechniek maakt het mogelijk om ook een PHP-klasse methode uit te voeren. Wanneer gevraagd wordt om een filter te verwerken dat geschreven is als "x::y", zal SPIP op zoek gaan naar een "filter_x" PHP klasse met een uitvoerbare "y" methode. Als het er geen vindt, zal het zoeken naar een klasse "filtre_x_dist", en dan uiteindelijk naar een klasse "x".

[(#BAKEN|class::methode)]

Voorbeeld

Stel dat we een PHP class hebben die als volgt is gedefinieerd. Ze bevat een (recursieve) functie die faculteiten berekent (x! = x*(x-1)*(x-2)*...*3*2*1).

class Math{
  function factorial($n){
    if ($n==0) 
      return 1;
    else 
      return $n * Math::factorial($n-1);
    }
}

Deze nieuwe functie kan binnen SPIP als volgt worden opgeroepen:

[(#VAL{9}|Math::factorial)]
// resultaat is 362880

Auteur hanjo Gepubliceerd op: Aangepast: 12/03/23

Vertalingen: English, français, Nederlands