ilyichzc
Новичок
Как PHP5 работает с указателями на массивы?
Есть многомерный массив, который является свойством класса. Стоит задача работать с его элементами (изменять количество элементов и значения их полей) внутри класса. Могу я методом get... вернуть указатель на элемент массива, так чтобы его содержимое не копировалось, а изменалось при изменении полей. До этого сталкивался с проблемами при передачи сложных массивов по указателям как аргументов функций.
Вот пример:
Есть многомерный массив, который является свойством класса. Стоит задача работать с его элементами (изменять количество элементов и значения их полей) внутри класса. Могу я методом get... вернуть указатель на элемент массива, так чтобы его содержимое не копировалось, а изменалось при изменении полей. До этого сталкивался с проблемами при передачи сложных массивов по указателям как аргументов функций.
Вот пример:
PHP:
$POINT = array(
'x'=>0,
'y'=>0,
'z'=>0
)
class simpleClass
{
VAR $points= array();
function newPoint($x, $y, $z)
{
GLOBAL $POINT;
$id = count($this->points);
$this->points[$id] = $POINT;
$this->points[$id]['x'] = $x;
$this->points[$id]['y'] = $y;
$this->points[$id]['z'] = $z;
return(&$this->points[$id]); /// ----- Есть ли возможность вернуть указатель?
}
function createAndMove ($x, $y, $z)
{
$point = $this->newPoint(0, 0, 0);
$point['x'] = $x; /// --- изменятся ли значения в массиве $this->points[$id] ?
$point['y'] = $y;
$point['z'] = $z;
}
}