if-Verzweigung optimieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • if-Verzweigung optimieren

    Simples "Problem", aber ich find keine Lösung.

    Quellcode wie folgt:
    PHP-Code:
    if( $status )
        
    $str '<b>Aktiviert</b> &middot; <a href="#">Deaktiviert</a>';
    else
        
    $str '<a href="#">Aktiviert</a> &middot; <b>Deaktiviert</b>'

    Frage: Ist es möglich, diesen Code nicht viel einfacher zu machen? Ich steh grad ein bissi auf der Leitung...
    Zuletzt geändert von tomstig; 08.06.2006, 00:32.
    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

  • #2
    "viel einfacher"? nein.
    anders - schon.

    was willst du denn daran vereinfachen?

    Kommentar


    • #3
      wieso optimieren? das ist schon i.O., du kannst höchstens in:

      $str = (condition) ? true : false;

      umwandeln, aber ob das dann übersichtlicher wird, ist Geschmacksache.

      Kommentar


      • #4
        Re: if-Verzweigung optimieren

        Nicht nur einfacher, vor allem sinnvoller. Du verlinkst etwas, damit der Text ausgezeichnet wird (blau, unterstrichen). Dafür ist das A-Tag nicht gedacht. Machs entweder mit U- und FONT-Tags oder gleich richtig mit CSS.
        PHP-Code:
        $str '<span class="'.($status?'active':'bold').'">Aktiviert</span> 
              &middot; <span class="'
        .($status?'bold':'active').'">Deaktiviert</span>'

        Kommentar


        • #5
          Re: Re: if-Verzweigung optimieren

          Original geschrieben von onemorenerd
          Nicht nur einfacher, vor allem sinnvoller. Du verlinkst etwas, damit der Text ausgezeichnet wird (blau, unterstrichen). Dafür ist das A-Tag nicht gedacht. Machs entweder mit U- und FONT-Tags oder gleich richtig mit CSS.
          PHP-Code:
          $str '<span class="'.($status?'active':'bold').'">Aktiviert</span> 
                &middot; <span class="'
          .($status?'bold':'active').'">Deaktiviert</span>'
          Ich hab href weglassen, weil die Zeile sonst zu lang gewesen wäre, ganz nebenbei interessierts ja sowieso niemanden, wohin ich verlinke. Glaubst du, ich missbrauch <a> damits blau und unterstrichen ist?

          Original geschrieben von penizillin
          "viel einfacher"? nein.
          anders - schon.

          was willst du denn daran vereinfachen?
          Im Grund steht 2x das gleiche da und müsste doch verkürzt werden können. Naja, scheinbar nicht.
          Wahrscheinlich über ein Array und dann hin- und hertauschen und dann überhaupt
          Zuletzt geändert von tomstig; 08.06.2006, 00:51.
          [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

          Kommentar


          • #6
            Re: Re: Re: if-Verzweigung optimieren

            Original geschrieben von tomstig
            Ich hab href weglassen, weil die Zeile sonst zu lang gewesen wäre... glaubst du, ich missbrauch <a> damits blau und unterstrichen ist?
            Vergib mir. Genau das nahm ich an. Hier gibts leider viel mehr Leute, die unsinniges HTML schreiben als solche, die mitdenken und den Code aufs wesentliche reduzieren.
            Im Grund steht 2x das gleiche da und müsste doch verkürzt werden können...
            Da steht "a+bc-d" gegenüber "c+da-b", wenn man das Beiwerk zwischen den veränderlichen Teilen mal wegläßt. Das kann man nicht wesentlich kürzer oder übersichtlicher programmieren, als du es bereits getan hast.

            Kommentar


            • #7
              Im Grund steht 2x das gleiche da [...]
              wenn es das wäre, könnte man es leicht vereinfachen. oder?

              für den menschen sind ähnlichkeiten im aufbau der strings direkt ersichtlich.
              die bedeutung der zeile kannst du in einer programmiersprache nicht so leicht umsetzen. im grunde geht es doch "nur" darum, dass du _entweder_ das eine _oder_ das andere verlinkst und das andere jeweils fett markierst. da "verlinken" bzw. "fett markieren" aber keine "atomaren" funktionen sind, sondern auf stringverkettung basieren, wird jeder versuch, den block zu verkürzen scheitern, solange du diese zwei funktionen nicht direkt erreichbar machst (würde ich für so einen kram natürlich auch nicht).

              ich verdeutliche den fall, dass du öfter mal verlinken müsstest (die kleinigkeit mit der url überlasse ich der phantasie):
              PHP-Code:
              function link($s)
              {
                 return 
              '<a href="#">'.$s.'</a>';
              }

              function 
              strong($s)
              {
                 return 
              '<strong>'.$s.'</strong>';
              }

              # und hier der einsatz, frei nach asp2php:

              $str = ( $status 
                                
              link('akt').' - '.strong('deakt'
                                : 
              strong('akt').' - '.link('deakt') ); 
              wäre aber, wie gesagt, in deinem konkreten fall (sowie in den meisten praxisnahen fällen) völlig "overfunctioned".

              Kommentar


              • #8
                overfunctioned++:
                PHP-Code:
                function concat($a$b) { return $a.' - '.$b; } 
                fullyfunctioned:
                PHP-Code:
                function decide($d$a$b) { return $d $a $b; } 
                Und morgen bauen wir uns eine Klasse dafür.

                Kommentar


                • #9
                  ...in einer anderen sprache müsste man gar den verkettungsoperator überladen können...

                  Kommentar


                  • #10
                    hehe lol

                    Hab ich mich mit meinem ersten Gefühl doch nicht geirrt, dass es bei gleichbleibender Übersichtlichkeit nicht einfacher geht
                    Naja, wenn man sich aber dann noch einbildet, dass man auf der Leitung sitzt

                    Vielen Dank für ihre Aufmerksamkeit...

                    [closed] (sofern nicht abraxax wieder das letzte wort haben will )
                    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                    Kommentar

                    Lädt...
                    X