PHPで配列からオブジェクトを削除する必要がありますが、オブジェクト参照がまだ存在する必要があります。ここunset()
で説明されているように使用しようとすると、配列要素とオブジェクト自体の両方が設定解除されます。破壊せずに配列から参照を削除するにはどうすればよいですかオブジェクト?
私のコードは次のようになります。
$this->array[id] = myobject;
unset($this->array[$id]);
このコードは私にとってはうまくいきます:
$my_var = 1;
$my_array = array();
$id = 0;
$my_array[$id] = $my_var;
print_r($my_array);
print_r($my_var);
unset($my_array[$id]);
print_r($my_array);
print_r($my_var);
最後に、$id
から (0) インデックスをクリアしましたが$my_array
、$my_var
はまだ に等しい1
です。
配列参照を破棄する前に、オブジェクトの参照を保持しようとしましたか?
$user = new User('name','surname');
$myUserReference = $user;
$data = array('user'=> $user);
print_r($data);
unset($data['user']);
print_r($data);
これにより、$user オブジェクトと空の配列を含む配列が出力されます。$myUserReference var に $user オブジェクトへの参照が必要です