return-Funktion
moe
- php
Hi
Ich hab das Problem, dass ich eine Funktion aufruf, diese soll eine bestimmte 3-stellige Action umwandeln.
Die Funktion lautet wie folgt:
function convert_action ($action)
{
$x = "";
switch ($action)
{
case 'NWS' : $x = "News includen";break;
case 'KON' : $x = "Kontakt includen";break;
default : $a = 0;
for ($i=0;$i<=strlen($action)-1;$i++)
{
if (substr($action,$i,1) == 0)
{
$a++;
}
else
{
break;
}
$action = substr($action,$a+1,strlen($action)-$a);
}
break;
}
if (is_int($action))
{
$x = "ist integer:".$action;
}
else
{
$x = "Fehler...<br>";
}
return $x;
}
Funktioniert soweit schon alles wunderbar, nur will die Funktion aus einem mir nicht bekannten grund den Wert nicht returnen. Könnt ihr mir weiterhelfen?
gruß
moe
n'abend,
for ($i=0;$i<=strlen($action)-1;$i++)
macht für mich weniger Sinn als
for( $i=0; $i<strlen($action); $i++ ){ /* ... */ }
Funktioniert soweit schon alles wunderbar, nur will die Funktion aus einem mir nicht bekannten grund den Wert nicht returnen. Könnt ihr mir weiterhelfen?
Gibt es denn irgendwelche Notices / Warnings? (evtl. willst du mal kurz error_reporting() anschauen)
Wie hast du denn getestet, dass «soweit schon alles wunderbar funktioniert»?
weiterhin schönen abend...
Getestet hab ich das ganze mit Testeinträgen aus ner Datenbank, die ich dann direkt aus der Funktion 'geechot' hab. Da kam dann immer das raus was ich erwartet hatte.
error_reporting ist aus E_ALL gestellt.
gruß
moe
n'abend,
Getestet hab ich das ganze mit Testeinträgen aus ner Datenbank, die ich dann direkt aus der Funktion 'geechot' hab. Da kam dann immer das raus was ich erwartet hatte.
verstehe ich deinen Ansatz richtig, müsste es völlig egal sein, was $action zum Inhalt hat, im schlimmsten Fall wird "Fehler..." ausgegeben. Vermute ich richtg, verbirgt sich ein Fehler in deiner Funktion.
dann würdest du
if (is_int($action))
{
$x = "ist integer:".$action;
}
else
{
$x = "Fehler...<br>";
}
nur ausführen wollen, wenn $x nicht bereits gesetzt wurde (also != "" ist).
An welcher Stelle in der Funktion hast du das Ergebnis den ausgeben lassen?
weiterhin schönen abend...
Hi
praktisch in der Zeile vor return $x.
Ok, danke hab den Fehler verbessert. Das tatsächliche problem, dass $x nich returnt wird besteht aber trotzdem noch :(
Danke nochmal für den Tip!
n'abend,
Ok, danke hab den Fehler verbessert. Das tatsächliche problem, dass $x nich returnt wird besteht aber trotzdem noch :(
möchtest du deine (verbesserte) Funktion nun nochmal posten? Am Besten auch gleich noch ein paar Demo-Werte für $action?
weiterhin schönen abend...
Hi,
Ok, danke hab den Fehler verbessert. Das tatsächliche problem, dass $x nich returnt wird besteht aber trotzdem noch :(
Wie sieht der Aufruf der Funktion aus?
cu,
Andreas
Liebe(r) moe,
return $x;
Funktioniert soweit schon alles wunderbar, nur will die Funktion aus einem mir nicht bekannten grund den Wert nicht returnen. Könnt ihr mir weiterhelfen?
das deutet darauf hin, dass Du in Deinem Scriptverlauf die Funktion aufrufst, ohne ihr Ergebnis zu "speichern".
Vergleiche:
$ergebnis = false; // Variable initiieren
convert_action ($str); // Funktion "einfach nur so" aufrufen
$ergebnis = convert_action ($str); // Ergebnis der Funktion in Variable speichern
Liebe Grüße aus Ellwangen,
Felix Riesterer.