[解決済み] PHPの配列を別の配列にコピーする関数はありますか?
2022-01-29 15:50:48
質問
PHPの配列を別の配列にコピーする関数はありますか?
PHP の配列をコピーしようとして、何度か痛い目に遭っています。オブジェクトの内部で定義された配列を、その外部のグローバルにコピーしたいのです。
どのように解決するのですか?
PHPでは、配列はコピーで割り当てられ、オブジェクトは参照で割り当てられます。ということになります。
$a = array();
$b = $a;
$b['foo'] = 42;
var_dump($a);
降伏する。
array(0) {
}
ところがだ。
$a = new StdClass();
$b = $a;
$b->foo = 42;
var_dump($a);
収量です。
object(stdClass)#1 (1) {
["foo"]=>
int(42)
}
のような複雑なものに惑わされる可能性があります。
ArrayObject
これは、配列と全く同じように動作するオブジェクトです。しかし、オブジェクトであるため、参照セマンティクスを持っています。
編集 下のコメントで@AndrewLarssonが一点指摘しています。PHPには"references"と呼ばれる特別な機能があります。これは、C/C++ などの言語におけるポインタと多少似ていますが、まったく同じというわけではありません。配列に参照が含まれている場合、配列自体はコピーで渡されても、参照は元のターゲットに解決されます。もちろん、通常はそのような動作が望ましいのですが、触れておくに越したことはないと思いました。
関連
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] 配列を値でコピーする
-
[解決済み] 配列の項目を別の配列にコピーする
-
[解決済み] PHP 配列をキーではなく値で削除する
-
[解決済み] php.iniはどこにありますか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。