jens65m: Ausgabe von Funktionen

wieder eine frage an euch,

ich habe eine funktion die in etwa so aussieht.

function test()
{
   if(irgendwas wahr ist)
   $blabla = "hallo";

if(irgendwas anderes wahr ist)
   {
      $blabla = "ka";
   }
   else
   {
      $error[] = "0815";
   }

if(empty($error))
   {
      echo $blabla
   }

else
   {
      foreach($error as $einfallslos)
      echo $einfallslos
   }

}

leider wird die Variable aber neu gesetzt und nicht erweitern.
wie könnt ich das machen?
lg

  1. Hi,

    leider wird die Variable aber neu gesetzt und nicht erweitern.
    wie könnt ich das machen?

    Du könntest dich informieren, was der Verkettungsoperator in PHP ist und macht.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Lieber jens65m,

    function test()
    {
       if(irgendwas wahr ist)
       $blabla = "hallo";

    if(irgendwas anderes wahr ist)
       {
          $blabla = "ka";
       }
       else
       {
          $error[] = "0815";
       }

    wo hast Du $error hier korrekt initialisiert?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. wo hast Du $error hier korrekt initialisiert?

      ist mir bewusst ;-)

      Und Verkettungsoperator ist mir auch bekannt.
      Es geht aber darum.

      Ich will mit index.php eine Seite (html) schreiben. Diese Seite soll bestimmte Code-Elemente aber nur enthalten wenn bestimmte Bedingungen eintreten. Außerdem soll es bei eventuell fehlenden Eigenschaften Fehler geben. Also ungefähr so:

      function html_ausgabe($error = array())  
      {  
         if(bedingung)  
         {  
            $html = "<div class\"test\">inhalt</div>";  
         }  
         else  
         {  
            $error[] = "pech";  
         }  
        
         if(bedingung2)  
         {  
            $html = "<div class\"irgendwas\">content</div>";  
         }  
         else  
         {  
            $error[] = "0815";  
         }  
        
        
         if(empty($error))  
         {  
            echo $html;  
         }  
         else  
         {  
            foreach($error as $x)  
            echo $x;  
         }  
        
      }
      

      lg, jens

      1. die Ausgabe sollte dann so aussehen:

        <div class="test">inhalt</div>
        <div class="irgendwas">content</div>

        und jupp da oben fehlt zweimal ein = nach den class-Attributen ...

      2. Hi,

        Und Verkettungsoperator ist mir auch bekannt.

        Und warum benutzt du ihn dann nicht, um das zu erreichen, was du nachfolgend beschrieben hast?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      3. Lieber jens65m,

        Ich will mit index.php eine Seite (html) schreiben. Diese Seite soll bestimmte Code-Elemente aber nur enthalten wenn bestimmte Bedingungen eintreten. Außerdem soll es bei eventuell fehlenden Eigenschaften Fehler geben.

        Da war doch mal etwas... In einer alten Diskussion hatte ich einmal eine Template-basierte Herangehensweise vorgeschlagen. Das wiederhole ich hiermit ausdrücklich.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      4. [latex]Mae  govannen![/latex]

        Es geht aber darum.

        Ich will mit index.php eine Seite (html) schreiben. Diese Seite soll bestimmte Code-Elemente aber nur enthalten wenn bestimmte Bedingungen eintreten. Außerdem soll es bei eventuell fehlenden Eigenschaften Fehler geben. Also ungefähr so:

        Also immer noch das gleiche Thema wie im letzten Thread.

        Kai

        --
        Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
        in Richtung "Mess up the Web".(suit)
        SelfHTML-Forum-Stylesheet
  3. Hello,

    ich habe eine funktion die in etwa so aussieht.

    Ich fand das früher immer so klasse.
    Unter "Funktion" verstand man Konstrukte, die nur genau ein Funktionsergebnis zurückgaben, meistens über den Stack.
    Unter "Prozedur" verstand man Konstrukte, die eventuell etwas zurückgaben, aber auch noch andere Aufgaben erledigt haben, also z.B. Ausgaben auf die Standardausgabe verursacht haben.

    Leider will von dieser Sprachregelung heute keiner mehr etwas wissen und so murxen Funktionen auch beliebig auf Ausgabekanälen herum, speziell schlecht: auf der Standardausgabe.

    Ich vermute daher, dass Du überhaupt erstmal nachlesen solltest, was es mit dem Gültigkeitsbereich von Variablen auf sich hat.

    Wenn Du möchtest, dass eine (externe) Variable $error (Array) weiter aufgefüllt wird durch die "Funktion", dann musst Du dieser Funktion auch Zugriff darauf geben. Sauber macht man das über eine Referenz.

    $error = array();

    function test(&$error, &$blabla = "ka")
    {
        if(irgendwas_nicht_wahr_ist)
        {
           $error[] = "0815";
           return "alles scheiße";
        }

    return "alles gut";
    }

    echo test($error);

    if(empty($error) or !is_array($error))
    {
        echo $blabla;
    }
    else
    {
        foreach($error as $einfallslos);
        echo "<p>$einfallslos</p>";
    }

    Meintest Du das?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      function test(&$error, &$blabla = "ka")

      Das hghet in PHP leider nicht. Sorry. eine Referenz kann mit der Funktionsdeklaration nicht vorbelegt werden...

      function test(&$error, $blabla = "ka")
      {

      ...

      return $blabla;
      }

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hi!

        function test(&$error, &$blabla = "ka")
        Das hghet in PHP leider nicht. Sorry. eine Referenz kann mit der Funktionsdeklaration nicht vorbelegt werden...

        Du solltest dein PHP updaten, denn in PHP5 geht das (Punkt 3).

        Lo!