Felix Riesterer: Prinzip der Werteübergabe zwischen Funktionen

Beitrag lesen

Lieber averoxus,

Du hast das Prinzip der Werteübergabe zwischen Funktionen noch nicht ganz verstanden, schätze ich.

function count_members ($all_counted_members) {
$query = mysql_query("SELECT id FROM members");
$all_counted_members = mysql_num_rows($query);
}

Diese Funktion bekommt einen Wert in einer Variablen $all_counted_members übermittelt...  und tut damit absolut nichts. Der eventuell übermittelte Wert wird in der zweiten Anweisung mit etwas Neuem überschrieben! Zurück gibt die Funktion übrigens nichts (oder siehst Du da ein "return $irgendwas"?).

Diese Funktion soll aus der Datenbank members herauslesen wie viele Zeilen es gibt.

Das tut sie ja...

Jetzt führe ich die Funtkion aus:

count_members ($all_counted_members);

Das ist richtig. Du lässt die Funktion genau das tun, was sie soll. Na und? Fängst Du damit irgendetwas an? Ach, und wo kommt die Variable $all_counted_members her? Hast Du diese vorher im Verlauf Deines Scripts definiert? Dieses $all_counted_members im Funktionsaufruf ist eine völlig andere Variable, als die gleichnamige Variable innerhalb Deiner Funktion!

echo $all_counted_members;

Tja, hier wird das ausgegeben, was auch schon vorher in der Variablen $all_counted_members drinne stand... nämlich nix.

Wo liegt da das Problem (zur Datenbank habe ich schon connected).

Du möchtest, dass Deine Funktion einen Wert zurück gibt!

function count_members () {  
    /* Diese Funktion benötigt keine übergebenen Werte, da ja alles schon  
       in der folgenden Zeile fest eingetragen ist: */  
  
    $query = mysql_query("SELECT `id` FROM `members`");  
    $all_counted_members = mysql_num_rows($query);  
  
    // Hier gibst Du das Ergebnis an den Funktionsaufruf zurück!!  
    return $all_counted_members;  
}  

So. Und nun holen wir uns über unsere Funktion den Wert:

$all_counted_members = count_members(); // Wert holen und in Variable speichern  
echo $all_counted_members; // und ausgeben.

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)