参照渡しの挙動
PHPの参照渡しの挙動
<?php function func( &$messages ){ array_push( $messages, "message" ); } $messages = array(); func( $messages ); var_dump( $messages );
これと、
<?php function func( &$messages ){ $messages = array(); array_push( $messages, "message" ); } func( $messages ); var_dump( $messages );
これは意図した挙動、
array(1) { [0]=> string(7) "message" }
となるんだけど、
<?php function func( &$messages ){ array_push( $messages, "message" ); } func( $messages = array() ); var_dump( $messages );
これは
array(0) { }
こうなって、
<?php function func( $row, &$messages = array() ){ array_push( $messages, "message" ); } func( $rows, $messages ); var_dump( $messages );
これは、
PHP Warning: array_push(): First argument should be an array in phpfile on line 3 NULL
となるんですね。