1

PHPで配列からオブジェクトを削除する必要がありますが、オブジェクト参照がまだ存在する必要があります。ここunset()で説明されているように使用しようとすると、配列要素とオブジェクト自体の両方が設定解除されます。破壊せずに配列から参照を削除するにはどうすればよいですかオブジェクト?

私のコードは次のようになります。

$this->array[id] = myobject;
unset($this->array[$id]);
4

3 に答える 3

2

このコードは私にとってはうまくいきます:

$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です。

于 2013-07-26T17:46:32.147 に答える
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 オブジェクトへの参照が必要です

于 2013-07-26T18:02:55.700 に答える