bleicher: elegantere zuweisung?

Grüße,
suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.
beim hin un herprobieren stieß ich auf
if($x=$_GET['y'] OR $x="0"){
..
}

echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
echo $x[0]; gibt ebenfalls trockenes "Array"
MFG
bleicher

--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
Boccaccio
  1. hallo,

    if($x=$_GET['y'] OR $x="0"){
    ..
    }
    echo $x gab Array zurück.. was habe ich da eben gebastelt?

    Das kannst vorerst nur du genauer wissen. Ein klein bißchen mehr Code ist vermutlich nötig, und auch die "Idee", die du verfolgst. Was soll denn dein Code tun? Wie sicher ist es, daß du wirklich als GET nur den Buchstaben "y" bekommst? In sehr vielen Fällen enthält GET tatsächlich einen Array.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. beim hin un herprobieren stieß ich auf
    if($x=$_GET['y'] OR $x="0"){
    ..
    }

    echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
    echo $x[0]; gibt ebenfalls trockenes "Array"
    MFG
    bleicher

    Guten Morgen!

    suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.

    Das verstehe ich folgendermaßen:
    $x = (empty($_GET['y'])) ? 0 : $_GET['y'];
    Ich hoffe, das ist es, was Du meinst.
    Lieben Gruß
    zettelbox

  3. (Hallo|Hi(ho)|Tag) bleicher,

    Grüße,
    suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.

    In welchem Fall soll denn die Zuweisung hinter dem ODER zutreffen?
    Üblicherweise prüft man das Vorhandensein eines brauchbaren Eintrages
    im $_GET-Array mit isset() oder empty(). Einigermaßen "elegant" würde
    ich das mit dem Konditionaloperator lösen:

      
    $x = empty( $_GET['y'] ) ? "0" : $_GET['y'];  
    
    

    Denn bei "OR" müsste ich immer erst im PHP-Handbuch nachschauen, welche
    Rangfolge der Operator gegenüber den anderen hat. Oder ich würde mehr
    Klammern setzen, um sicher zu gehen -- was nun gerade nicht sehr elegant
    ist.

    beim hin un herprobieren stieß ich auf
    if($x=$_GET['y'] OR $x="0"){
    ..
    }

    echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
    echo $x[0]; gibt ebenfalls trockenes "Array"

    Nur wenn $_GET['y'] selbst ein Array ist, sollte auch $x eines werden.
    Das passiert aber beispielsweise, wenn dem Script per URL sowas wie
    "?y[]=bla" per GET übergeben wird.

    Du kennst aber sicher die heilsame Wirkung von var_dump() oder print_r()?
    Damit kannst du dir auch die Inhalte des Arrays ansehen und erfährst so
    eher, um welche Art von Array es sich da handelt. ;-)

    MffG
    EisFuX

    1. Grüße,

      $x = empty( $_GET['y'] ) ? "0" : $_GET['y'];

      oops.. die (? "0") sagen mir nix.. im welchem php.net abteil habe ich das nachzuschlagen/wie nennt sich das?
      (srry n000000b :()
      MFG
      bleicher

      --
      __________________________-
      Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
      Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
      Boccaccio
      1. (Hallo|Hi(ho)|Tag) bleicher,

        Grüße,

        $x = empty( $_GET['y'] ) ? "0" : $_GET['y'];

        oops.. die (? "0") sagen mir nix.. im welchem php.net abteil habe ich das nachzuschlagen/wie nennt sich das?

        Konditionaloperator, im PHP-Handbuch heißt er ternärer Operator, wird dort
        aber etwas stiefmütterlich behandelt.
        Er ersetzt eine einfache if-else-Sequenz mit Zuweisung zu einer Variablen.
        Aus "$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];" wird

          
        if ( empty( $_GET['y'] ) ) {  
          $x = "0;  
        }  
        else {  
          $x = $_GET['y'];  
        }  
        
        

        oder anders ausgedrückt:

          
        $x = wenn_das_hier_zutrifft  
          ? übergib_diesen_wert_an_$x  
          : wenn_nicht_übergib_diesen_wert_an_$x;  
        
        

        Die if-else-Sequenz ist übrigens etwas schneller in der Ausführung --
        zumindest hat das mal ein Test, den ich vor längerer Zeit gemacht hatte,
        so ergeben (PHP5).

        (srry n000000b :()

        Hey, den Operator gibts aber auch in anderen Sprachen:
        en.wikipedia.org/wiki/?:

          
        ...  
        $bestellung = is_true($durst)  
          ? "Noch 'n Bier!"  
          : "Ich möchte zahlen";  
          
        $ober->anquatschen($bestellung);  
        ...  
        
        

        MffG
        EisFuX

        1. danke^^

          MFG
          bleicher

          --
          __________________________-
          Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
          Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
          Boccaccio
          1. (Hallo|Hi(ho)|Tag) bleicher,

            danke^^

            Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
            ;-)

            MffG
            EisFuX

            1. Grüße,

              Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
              ;-)

              hihi^^ soll ich bei deiner ein "hände hoch partisane!" oder ähnliches erwarten^^?

              MFG
              bleicher

              --
              __________________________-
              Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
              Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
              Boccaccio
              1. (Hallo|Hi(ho)|Tag) bleicher,

                Grüße,

                Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
                ;-)

                hihi^^ soll ich bei deiner ein "hände hoch partisane!" oder ähnliches erwarten^^?

                Öhm, nein, das Wort kommt von "executive" ...

                http://everything2.com/index.pl?node=ExecBase,

                und der Erfinder dieses Wortes soll ein ganz friedlicher Mensch sein.

                MffG
                EisFuX