Reputation: 4918
In php 5, all variable and objects are passed by reference, but i can't get my codes work
My codes is:
$arrayA = array();
$array = $arrayA;
...
if(!in_array(thedata, $array)
$array[] = thedata;
var_dump($arrayA);
The result is empty, am i missing something simple?
Upvotes: 4
Views: 4429
Reputation: 5230
<?php
$arrayA = array();
$arrayB =& $arrayA;
$arrayB = array(1,2,3);
var_dump($arrayA);
Read more here:
http://php.net/manual/en/language.types.array.php (Search for Reference)
http://www.php.net/manual/en/language.references.php
Upvotes: 8
Reputation: 10674
Only objects are passed by reference. If you want to make a reference to simple types, you have to use =& for assignment:
php > $var1 = 'xxxxx';
php > $var2 =& $var1;
php > $var1 = 'yyyyy';
php > echo $var2;
yyyyy
Upvotes: 3
Reputation: 37978
In PHP5 all objects are passed by reference (more or less), not all variables.
$array =& $arrayA;
Upvotes: 1