Funzioni variabili applicate agli Oggetti

Nell'ultima parte del capitolo sulle Funzioni, abbiamo parlato delle funzioni variabili.

Vedremo ora come è possibile applicare il medesimo concetto ai metodi di una classe.

<?php

	class OggettoInventato
	{
		function metodo1()
		{ echo "Ciao sono il primo metodo!<br />\n"; }

		function metodo2()
		{ echo "Ciao sono il secondo metodo!<br />\n"; }

		function metodo3()
		{ echo "Ciao sono il terzo metodo!<br />\n"; }
	}

	$obj = new OggettoInventato();

	$num = 3;
	$prefisso = "metodo";
	
	for ($i = 1; $i <= $num; $i++)
	{
		$funzione = $prefisso . $i;
		$obj->$funzione();
	}

?>

Il codice soprastante produce questo risultato.

Per richiamare i metodi con le variabili dall'interno della classe, è sufficiente sostituire $obj con $this.

<?php

	class OggettoInventato
	{
		function metodo1()
		{ echo "Ciao sono il primo metodo!<br />\n"; }

		function metodo2()
		{ echo "Ciao sono il secondo metodo!<br />\n"; }

		function metodo3()
		{ echo "Ciao sono il terzo metodo!<br />\n"; }

		function richiamaMetodi()
		{
			$num = 3;
			$prefisso = "metodo";
	
			for ($i = 1; $i <= $num; $i++)
			{
				$funzione = $prefisso . $i;
				$this->$funzione();
			}
		}
	}

	$obj = new OggettoInventato();
	$obj->richiamaMetodi();

?>

Il risultato ottenuto è il medesimo.