While Schleife in Funktion aufrufen
Tolwin
- php
0 Heakl0 Philipp Söhnlein0 Tolwin
Hallo Forum,
vielleicht ist das jetzt ne beknackte Frage -> bitte nicht steinigen.
Ich versuche mir ein Dropdown Feld mit Zahlen von 0 - 23 für Stunden
und 00 - 59 für Minuten ausgeben zu lassen.
Dies hab ich bisher direkt im Skript mit einer While Schleife gelöst.
Da ich dies jetzt öfter nutzen möchte, wollte ich es in eine Funktion auslagern.
Sowas geht nicht (da vermutlich nur einmal aufgerufen)
function getTimeHours() {
$i = 00;
while($i < 24) { $i++; return $i;}
}
Kann sowas funktionieren.
Schon vorab viele Dank für die lockere Bearbeitung deises "Beitrags" =)
Gruß
Tolwin
Hi
wenn du eine Funktion mehrfach aufrufen möchtest könnte:
setTimeout("Funktion",timeout)
helfen.
also z.B. so:
function count(i){
if(i < 10){
i++;
setTimeout("count(" + i +")",0);
}
}
damit wird die Funktion solange aufgerufen bis i >= 10 danach wird das ganze Beendet. Setz bei sowas Timeout auf jedenfall auf 0! ist zwar immer noch langsamer als wenn du es direkt in einer Funktion machst.
Nochwas ein RETURN ist IMMER ein Funktionsende!
ergo:
while(1){
return 0;
}
Ist KEINE Endlosschleife mehr weil du beim ersten Aufruf etwas returnst und die Funktion somit beendest!
mfg der Heakl
Huhu,
setTimeout("Funktion",timeout)
Bei JavaScript ja, bei PHP nein. :-)
Ciao
Phil
Ach sorry ... hatte mich schon über die Variablendeklaration gewundert ... naja das kommt dabei raus wenn man mit 200.000 verschiedenen Sprachen gleichzeitig arbeitet ...
sry und mfg der Heakl
(Achso ich würde übrigens ein Array verwenden:
function getTimeHours()
{
$i=0;
while($i<24)
{
$i++;
$return[i] = i;
}
return $return;
}
Dann kann er es besser einbinden:
echo "<select name="select">"; //erstellen der Liste
$options = getTimeHours(); //holen der Array Werte
for(i=0; i < count($options)-1; i++){
echo "<option value="".$options[i]."">".$options[i]."</option>\n";
}
echo "</select>";
mfg der Heakl
Ich danke Euch beiden für die Antworten.
Im Endefekt nutze ich wieder meine alte While-Schleife,
die ist nämlich genau so lang =)
Grüße
Tolwin
Tach,
vielleicht ist das jetzt ne beknackte Frage -> bitte nicht steinigen.
*aushol* ;-)
Sowas geht nicht (da vermutlich nur einmal aufgerufen)
function getTimeHours() {
$i = 00;
while($i < 24) { $i++; return $i;}}
Naja, nicht ganz. Du stellst dir einen String mittels Stringverkettung zusammen den du erst zurückgibst, wenn die Schleife durchgelaufen ist.
function getTimeHours()
{
$i=0;
$return="";
while($i<24)
{
$i++;
$return.=$i;
}
return $return;
}
Ciao
Phil
Hi Phil,
vielen Dank für die Antwort. Habs mal übernommen.
Jetzt bekomme ich nach Aufruf der Funktion 12345678... usw
ausgegeben. So ruf ich sie auf
<select name="select" style="width:79px;">
<?php
echo "<option value="".getTimeHours()."">".getTimeHours )."</option>\n";
?>
</select>
Muss ich "<option value ...." noch in die Funktion aufnehmen,
dann würde ich aber nicht mehr flexibel mit der Funktion arbeiten können.
Viele Grüße
Tolwin