[PHP] Interner Zähler für Functionen

Allo

Lt. Commander
Registriert
Feb. 2004
Beiträge
1.064
Hallo,

Ich möchte eine Function erstellen, die mir bei jedem neuen Aufruf der Funktion einen Wert liefert, der um 1 höher ist als der Wert der zuvor von der Function zurückgeliefert wurde.

Das stelle ich mir so vor:

PHP:
function farbe() {
     $e=0; // $e soll bei jedem aufruf um eins größer werden
     if ($e % 2 != 0) { echo "gray"; }
     else             { echo "silver"; }
}

?><td bgcolor="<?farbe();?>"><?

Ich weiß, es giebt da eine spezielle Vorgehensweise die ich schon einmal gesehen habe.
Aber mir fällt die Seite ums verrecken nicht mehr ein.
 
In C/C++/Java gibt es das static Schlüsselwort.
Code:
int function()
{
    static int e = 0;
    return e++;
}
Die Variable e wird nicht gelöscht wenn die Funktion beendet wird. Beim nächsten Aufruf hat sie immer noch den Wert wie zum Zeitpunkt als die Funktion das letze Mal verlassen wurde. Sie wird auch nicht auf 0 zurück gesetzt.

Vielleicht gibt es dieses Schlüsselwort bei PHP auch.
 
Bei PHP musst du das mit dem Schlüsselwort 'global' machen und dann immer $e++.
 
Ah, ok, man lernt doch immer wieder dazu :) Wusste ncicht dass es sowas in Php auch gibt
 
PHP:
<?php  

function GetDifferentColours($count) { 
         
        $Colour1        = "#C0C0C0"; 
        $Colour2        = "#FFFFFF"; 


        $rest = $count % 2;              
        if($rest) { 
                return $Colour1;      
        } else { 
                return $Colour2;        
        } 
} 

$myArray = array("Zeile1", "Zeile2", "Zeile3", "4", "5");  


$i = 1; 
echo '<b>Ausgabe:</b><br><br><table width="50%">'; 

foreach($myArray as $val) {     
        echo '<tr><td bgcolor="'.GetDifferentColours($i).'">'.$val.'</td></tr>';  
       $i++;  
       
} 
echo '</table><br>'; 
?>
 
Zurück
Oben