phpbar.de logo

Mailinglisten-Archive

[php] Rekursiver Funktionsaufruf

[php] Rekursiver Funktionsaufruf

Hoseit, Matthias Matthias.Hoseit at comline.de
Mit Feb 16 13:43:04 CET 2005


Hallo Liste,

Ich wollte einem Azubi von uns einmal einen rekursiven Funktionsaufruf anhand eines kleines Beispiels demonstrieren, da ihm Rekursion so rein gar nichts sagt.

Ich habe nun ein kleines Script gebastelt, um ihm das zu zeigen.

Nun wollte ich mich nur kurz vergewissern, ob ich ihm

1. Keinen Schmarrn erzähle bei dem folgenden Code Beispiel
2. Das Beispiel verständlich ist (der Code wird nicht wirklich erläutert sollte aber meiner Meinung nach einleuchtend sein).

Code:
<?php
	class testRec
	{
		//Attribute		
		private $maxRecCount = 15; //Maximaler Wert für $i
		private $countRuns = 0; //Anzahl der Durchläufe
		
		//Methoden
		public function doRec($i)
		{
			if($i <= $this->maxRecCount)
			{
				echo "Funktion wird aufgerufen mit Wert für i='".$i."'.<br/>";
				//countRuns um 1 erhöhen.
				$this->countRuns++;
				//Funktion rekusiv aufrufen mit einem Wert i + 1
				$i++;
				$this->doRec($i);
			} 
			else 
			{
				echo "<b>Ende</b><br/>";
				echo "i hat den maximalen Wert von ".$this->maxRecCount." erreicht.<br/>";
				echo "Die Funktion doRec() wurde ".$this->countRuns." mal aufgerufen.";
			}
				
		}
	}

	$test = new testRec();
	//Rekursion starten
	$test->doRec(3);
?>

-----------
Ende Code

Ist das verständlich? Hat sich ein Fehler eingeschlichen? Bin für Kritik und Vorschläge offen.

Danke und Grüße

Matthias Hoseit

php::bar PHP Wiki   -   Listenarchive