ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

シャローコピー

PHP, var_dump() はインスタンスの状況を確認できる。

php

クラスオブジェクトはシャローコピーなので、プログラムをクラスベース(オブジェクト指向)で作っていると、インスタンスの状況が分かりづらくなります。

それはPHPでも同じ。

インスタンスがどこを見てるかを確認できるのが変数の値を出力する var_dump() です。

続きを読む

PHP, クラスオブジェクトの代入(=)は全くの別物。データコピーだと思ってたら大爆死。

php

PHPに限らず、プログラミングのイコール(=)は値の代入、言いかえれば、右辺から左辺へのコピーです。

ただ、クラスのオブジェクトではちがう。コピーですらないので、知らないととんでもない間違いを犯します。

これはPHPでも同じ。オブジェクト指向プログラミング特有の現象。

続きを読む

PHP, クラスオブジェクトのディープコピー。cloneキーワードを付けるだけじゃダメ!

php

PHPのオブジェクトの代入(=)はシャローコピーなので、厳密にはコピーじゃありません。そこでやらないといけないのがオブジェクトのクローン作成。

PHPではcloneキーワードを付けるだけのように見えるんですが、やることは他にもあります。

そこはやっぱりJavaと似ている。

続きを読む

シャローコピーとディープコピーってなんだ? オブジェクト指向がややこしくしている。

プログラミング

今や、クラスを使うプログラミングは主流の一つになっています。

JavaやC++はオブジェクト指向言語のメジャーですが、それまでそうじゃなかったPHPが採用されて久しいほど浸透しています。

そこで出てくるのがシャローコピーとディープコピーという言葉です。

続きを読む