Patrick Hartwig: FatalError - memory

Servus!

Habe diesen Code:

private function ErrorOut($Text) {  
	  
		if(ctype_alnum($Text)) {  
			// The error message is valid - only consistant off alphanumerical chars  
			echo $Text;  
		}  
		else {  
		     // Error Message wasn't valid  
			$this->ErrorOut("The Error Message had a mistake in it!");  
		}  
	}

Allerdings wird mir immer ein test
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261904 bytes) in E:\test.php on line 330 gegeben. 330 ist genau das $this->ErrorOut("The Error Message had a mistake in it!"); - wobei ich absolut nicht verstehe was daran bitte soviel Speicher verbrauchen soll. Und klein ist der Speicher nun auch nicht gerade bemessen. Woran kann sowas liegen?

  1. Deine Methode ruft sich selbst unendlich oft auf. Ein "!" ist kein alphanumerisches Zeichen.

    Cheers,
    Baba

    1. In order to understand recursion, one must first understand recursion. :)

  2. Zur Rekursion wurden ja schon Anmerkungen gemacht.

    Du nutzt Rekursion ohne Notwendigkeit, wieso?

    Dein Code kann auf einen einzigen Ausdruck reduziert werden.

      
    private function errorOut($text)  
    {  
      echo ctype_alnum($text) ? $text : 'The Error Message had a mistake in it!';  
    }  
    
    

    Sehr fragwürdig ist, wieso Fehlermeldungen nur aus Zahlen und Buchstaben sollen!
    Warum sollten Fehlermeldungen, in Bezug auf die darin enthaltenen Zeichen, überhaupt irgendwie eingeschränkt sein?