function in Variable speichern

  • Wer kann mir erklären, warum ich diese function nicht in eine variable speichern kann?


    Und warum eine function ohne echo oder dergleichen am screen ausgegeben wird?


    Also wenn ich der $xyz die function zuweise wird zwar der richtige Wert ausgegeben jedoch ohne das ich irgendwo echo angegeben hätte oder das in der Variable was gespeichert wäre.

    Code
    $xyz=anrede();


    wenn ich die function ohne echo und ohne variablen Zuweisung notiere

    Code
    anrede()


    wird der passende wert ausgegeben. Also je nach Angabe wird "geehrte Frau" oder "geehrter Herr" oder "geehrte Damen und Herren" ausgegeben


    fG
    Peter
    ^^

  • Das liegt daran, das es nicht geht. Du hast das prinziep der funktionen missverstanden.


    wenn du z.B $ich = function(); aufrufst, wird die funktion ausgeführt, und der rückgabewert in der var gespeichert.


    Wenn du aber in einer Funktion ein Echo einfügst, wird beim aufrufen eben das echo ausgeführt.


    Für das was du machen möchtest, musst du return nutzen.


    bsp.

    PHP
    <span class="syntaxdefault"><br />function anrede</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">){<br />if(</span><span class="syntaxdefault">$var </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"frau"</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">return </span><span class="syntaxstring">"geehrte Frau,"</span><span class="syntaxkeyword">;<br />}else{<br /></span><span class="syntaxdefault">return </span><span class="syntaxstring">"geehrter Herr,"</span><span class="syntaxkeyword">;<br />}<br />}<br /><br /><br /><br /></span><span class="syntaxdefault"> <br /><br /> </span>


    Das hinter dem return ist die rückgabe der Funktion, bei einem return wird die Funktion gleichzeitig beendet.
    wenn man nun nur die funktion aufruft, wird nichts geschehen.


    Benutzen würdest du sie so:


    PHP
    <span class="syntaxdefault"><br />$anrede </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> anrede</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'geschlecht'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">echo $anrede</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>
  • Danke!


    Es fühlte sich auch so an, als ob das nicht stimmte.
    Aber musste das fragen.


    Hat du eine Tip(Lektüre , Link) wie ich die Function verstehen kann.


    Ich hoff das es durch die Übung zu mehr Verständnis kommt.


    fG
    Peter

  • Wenn ich einer Variable eine Funktion zuweise, kann ich der Funktion Werte in der Klammer, für die innerhalb der Function gültige Variable, zuweisen.


    Stimmt doch !?


    fG

  • Jopp kannst du, wenn ich das richtig verstanden habe xD
    Beispiel:

    PHP
    <span class="syntaxdefault"><br />function addieren</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $b</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    $a </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> $b </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $c</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    return $c</span><span class="syntaxkeyword">;<br />}<br /><br /></span><span class="syntaxdefault">$Zahl </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> addieren</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 2</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo $Zahl</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//Ausgabe: 3  </span><span class="syntaxdefault"></span>


    (Weiß net ob da ein Fehler drin ist.. bin etwas müde.. aber so habe ich deine Frage verstanden und wollte sie nur etwas veranschaulichen^^)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!