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

オブジェクト指向

ファーストクラス, 第一級関数とか第一級オブジェクトってなんだ?

プログラミング

プログラミングをやってると、第一級関数とか第一級オブジェクトというワードにぶつかります。

First-Classの和訳なんですが、決して、航空会社の超ド級美人添乗員にドキドキするところではありません。

言葉に馴染みはなくても、プログラミングをやってれば経験していることです。

続きを読む

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

php

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

それはPHPでも同じ。

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

続きを読む

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

php

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

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

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

続きを読む

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

php

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

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

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

続きを読む

PHP, クラスオブジェクトのリファレンスは無意味。もともと参照渡しだから。

php

PHPにはリファレンス(参照)というポインタのようなものがあります。クラスオブジェクトにも使えるんですが意味がありません。

クラスオブジェクトの変数代入は参照渡しで、それはリファレンスと同じ動きだから。関数のパラメータでも同じ。

ただリファレンスとオブジェクト代入の内部のしくみは全くの別物。

続きを読む