Я не совсем понимаю, почему вывод этого кода равен '1'.Я предполагаю, что php ведет себя не так, как большинство других OO-языков, к которым я привык, в том смысле, что массивы, которые использует php, не должны быть объектами.Изменение массива, возвращаемого классом, не меняет массив внутри класса.Как получить класс для возврата массива, который я могу редактировать (и тот же адрес, что и в классе)?
<?php
class Test
{
public $arr;
public function __construct()
{
$this->arr = array();
}
public function addToArr($i)
{
$this->arr[] = $i;
}
public function getArr()
{
return $this->arr;
}
}
$t = new Test();
$data = 5;
$t->addToArr($data);
$tobj_arr = $t->getArr();
unset($tobj_arr[0]);
$tobj_arr_fresh = $t->getArr();
echo count($tobj_arr_fresh);
?>
РЕДАКТИРОВАТЬ: я ожидал, что результат будет 0