Edward
Edward

Reputation: 4918

How to get ref of an array in PHP 5?

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

Answers (4)

Moak
Moak

Reputation: 12865

$array =& $arrayA;

Upvotes: 1

Ivo Sabev
Ivo Sabev

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

K. Norbert
K. Norbert

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

Simon
Simon

Reputation: 37978

In PHP5 all objects are passed by reference (more or less), not all variables.

$array =& $arrayA;

Upvotes: 1

Related Questions