Как получить ссылку на массив в PHP 5? - PullRequest
4 голосов
/ 09 апреля 2010

В php 5 все переменные и объекты передаются по ссылке, но я не могу заставить мои коды работать

Мои коды:

$arrayA = array();

$array = $arrayA;
...
if(!in_array(thedata, $array)
    $array[] = thedata;
var_dump($arrayA);

Результат пуст, я что-то упустил?

Ответы [ 4 ]

9 голосов
/ 09 апреля 2010
<?php
    $arrayA = array();
    $arrayB =& $arrayA;
    $arrayB = array(1,2,3);
    var_dump($arrayA);

Подробнее здесь:

http://php.net/manual/en/language.types.array.php (Поиск справки)

http://www.php.net/manual/en/language.references.php

3 голосов
/ 09 апреля 2010

Только объекты передаются по ссылке. Если вы хотите сделать ссылку на простые типы, вы должны использовать = & для назначения:

php > $var1 = 'xxxxx';
php > $var2 =& $var1;
php > $var1 = 'yyyyy';
php > echo $var2;
yyyyy
1 голос
/ 09 апреля 2010

В PHP5 все объекты передаются по ссылке (более или менее), а не все переменные.

$array =& $arrayA;
1 голос
/ 09 апреля 2010
$array =& $arrayA;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...