Fred: null im funktionsaufruf

hallo,

einzelne funktionen haben bei mir folgenden aufbau

function foobar($var1, $var2=null, $var3=null){
   ..
}

wenn ich nun die funktion zb wie folgt aufrufe:

foobar("abc",null, array("...","..."));

ist die $var2 0 und nicht NULL, soll das so sein? generell wird bei parameterübergabe aus NULL immer 0.

sl Fred

  1. Hallo,

    ist die $var2 0 und nicht NULL, soll das so sein? generell wird bei parameterübergabe aus NULL immer 0.

    Ich nehme an, dass PHP schlicht annimmt, dass du 0 und nicht NULL meinst. Was gibt gettype bzw. is_null aus?

    Gruß,
    Severin

    --
    They that can give up essential liberty to obtain a little temporary safty deserve neither liberty nor safty.
    -- Benjamin Franklin
  2. Hallo Fred,

    einzelne funktionen haben bei mir folgenden aufbau

    function foobar($var1, $var2=null, $var3=null){
       ..
    }

    wenn ich nun die funktion zb wie folgt aufrufe:

    foobar("abc",null, array("...","..."));

    ist die $var2 0 und nicht NULL, soll das so sein?

    Also bei mir ist das definitiv nicht so:

    ------------------------------

    <?php  
      
    function foobar($var1, $var2=null, $var3=null) {  
      var_dump ($var1); var_dump ($var2); var_dump($var3);  
    }  
      
    foobar ("abc", null, array("...", "..."));  
      
    ?>
    

    ------------------------------

    ergibt:

    ------------------------------
    string(3) "abc"
    NULL
    array(2) {
      [0]=>
      string(3) "..."
      [1]=>
      string(3) "..."
    }
    ------------------------------

    Also so, wie es sein sollte - sowohl bei PHP 4.3.11 als auch bei PHP 5.0.4.

    Viele Grüße,
    Christian

  3. Hallo Fred,

    wenn ich nun die funktion zb wie folgt aufrufe:

    foobar("abc",null, array("...","..."));

    ist die $var2 0 und nicht NULL, soll das so sein? generell wird bei parameterübergabe aus NULL immer 0.

    Wahrscheinlich bist du über die automatische Typumwandlung von PHP gestolpert. Wenn du eine Rechenoperation mit $var2 ausführst und $var2 den Wert null hat, wird dies automatisch nach 0 umgewandelt.

    Sollte das nicht der Fall sein, beschreib bitte noch einmal genauer, wie du den Wert der Variable ermittelt hast.

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)