mike: wert einer funktion ausgeben

morgen!

bin noch sehr grün hinter meinen ohren wenn es um PHP geht..
hätte eine (eher einfache?) frage:
wie erreiche ich, dass der wert einer funktion zurückgegeben wird?? ich kenne funktionen schon aus dem javascript bereich, in PHP sieht das ganze ja genauso aus. nun hab ich folgendes script

function test() {
if ($variable=="1") {
echo "text1";
}
if ($variable=="2") {
echo "text2";
}}

<? test(); ?>

irgendwie bekomm ich nie einen wert zurück :(
hab schon alles ausprobiert, echo's "vertauscht" (also nicht in der funktion) uvm.

was mache ich falsch :(

es grüßt,
mike

  1. Hallo!

    Also:
    erstens muß die Funktion auch in PHP-Tags stehen und zweitens hast Du der Variablen $variable noch keinen Wert zugewiesen....
    Probier mal:

    <?php
    function test($variable) {
       if ($variable=="1") {
       echo "text1";
       }
      if ($variable=="2") {
      echo "text2";
      }
    }

    test('1');
    ?>

    1. erstens muß die Funktion auch in PHP-Tags stehen und zweitens hast Du der Variablen $variable noch keinen Wert zugewiesen....

      sorry sorry, mein fehler..
      natürlich steht die function innerhalb PHP tags, die variable wird mittels URL bestimmt (?variable=)

      trotzdem kommt nix dabei raus :\

      1. natürlich steht die function innerhalb PHP tags, die variable wird mittels URL bestimmt (?variable=)

        dann verstehe ich das auch nicht. Bitte mal den ganzen PHP-Code, der dies tun soll schreiben und die URL, die das Skript aufruft.

  2. Huhu mike

    function test() {
    if ($variable=="1") {
    echo "text1";
    }
    if ($variable=="2") {
    echo "text2";
    }}

    <? test(); ?>

    was mache ich falsch :(

    Du benutzt innerhalb der Funktion eine nicht initialisierte Variable. Damit die Funktion auf $variable zugreifen kann musst Du sie per global innerhalb der Funktion "sichtbar" machen.

    Also z.B.

    function test()
    {
    global $variable;
    [...]

    }

    Allerdings sollte man wo möglich auf den Einsatz globaler Variablen verzichten. Besser als Argument im Funktionsaufruf übergeben.

    Also z.B.

    function test($variable)
    {
    [...]
    }

    Und im Programm dann

    test(1);
    oder test($meinwertoderwasauchimmerdudirfuereinennamenfuerdiesevariableausdenkenmagst);

    Wenn die Funktion einen Wert zurückliefern soll machst du das genau wie in javascript mit return also
    z.B.

    function test($variable)
    {
     if($variable==1){
      $tmp='text1';
     }else{
      $tmp='text1';
     }
     return $tmp;
    }

    im Programm müsste dann in etwa stehen

    echo test($nr);

    Viele Grüße

    lulu

    1. Huhu mike

      was ich noch vergessen habe:

      $variable ist _KEIN_ guter Name für eine Variable

      Viele Grüße

      lulu

      1. $variable ist _KEIN_ guter Name für eine Variable

        hehe schon klar danke ;)

        danke auch an Christian, das problem hat aufgegeben :)

    2. Huhu mike

      huhu lulu :)

      function test($variable)
      {
      if($variable==1){
        $tmp='text1';
      }else{
        $tmp='text1';
      }
      return $tmp;
      }

      mit mr. burns stimme: "ausgezeichnet!"

      recht herzlichen dank :)