ID:               41242
 User updated by:  laurynas at by dot lt
 Reported By:      laurynas at by dot lt
 Status:           Bogus
 Bug Type:         Arrays related
 Operating System: Linux 2.6.17.7
 PHP Version:      5.2.1
 New Comment:

Logicaly, this should be fixed or defined anyway, because this is quite
often situation by many developers.

C/C# syntax executes these expressions *before* function call.


Previous Comments:
------------------------------------------------------------------------

[2007-04-30 16:52:23] [EMAIL PROTECTED]

No, the behavior is undefined (and currently executed after the
function call - but that doesn't make it defined - might change anytime)


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

[2007-04-30 16:13:03] laurynas at by dot lt

Agree, this is expresion, but the expression is executed before
function is called, right? So the variable should be defined *before*
function takes variable as a parameter. Then why it works in PHP 4.x?

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

[2007-04-30 16:06:22] [EMAIL PROTECTED]

"$user = array()" is not a variable, but an expression.

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

[2007-04-30 16:04:03] laurynas at by dot lt

Description:
------------
Array values are destroyed after using it as reference in function call
defining in call dirrectly as array. If given array is constructed
before function call in the same parameters line, PHP returns nothing,
but really shoud return a value associated to array.

Reproduce code:
---------------
<?php
        // this is our defined function
        // as you can see the second parameter is reference
        function someFunc($param1, & $array) {
                // so expecting $array as array we
                // put some value in it
                $array[0] = 'some value';
        }
        
        // now call the function, please note, that array $user
        // is created as array type *outside* function
        someFunc(null, $user = array());
        
        // now let's check returned value
        print_r($user);
?>

Expected result:
----------------
Array
(
    [0] => some value
)

Actual result:
--------------
Array
(
)



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


-- 
Edit this bug report at http://bugs.php.net/?id=41242&edit=1

Reply via email to