Hi!
Eine Funktion sollte ja bekanntlich eigentlich immer etwas zurückliefern - sei es auch nur um das Debuggen zu erleichtern.
Nun bin ich bei einer Funktion zur Überprüfung von User-Eingaben auf die Frage gestoßen, wie man am geschicktesten eventuelle Fehler aber auch die Rückmeldung über die Richtigkeit der Eingaben zurückzuliefern kann.
Beispiel:
---------------------------------------------------------------------------
<?php
function check($ressource) # unsinnige Funktion zum Testen eines Stringes
{ # auf eine vorgeschriebene Länge von 10 Zeichen
$string = '';
$flag = TRUE;
if(strlen($ressource) < 10)
{
$string .= "<h1>Eingabe zu kurz</h1>\n";
$flag = FALSE;
}
if($flag) return 1; # Rückgabe: 1 (int) ==> alles OK!
else return $string; # Rückgabe: $string mit Fehlermeldung
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<input type="text" size="20" name="text" />
<input type="submit" name="senden" value="Senden" />
</form>
<?php
if(isset($_POST['senden']))
{
if(is_int(check($_POST['text']))) echo "<br />TRUE\n";
else echo "<br />FALSE\n";
}
?>
---------------------------------------------------------------------------
Mir scheint dieser Weg über is_int() [zur Überprüfung auf den Rückgabewert 1 => alles OK]) etwas umständlich. Daher würde mich interessieren, wie ihr solche Unterscheidungen handhabt, wenn eine Funktionen entweder einen String oder einen Integer zurückgeben kann.
Grüße,
Fabian St.
Meine Website: http://fabis-site.net
--> XHTML, CSS, PHP-Formmailer, Linux
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:% fl:| br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)