PHP8.1から列挙型が追加されました。Enumという特殊なクラスです。
列挙型は定数をまとめたもの。Javaにはすでにあるんですが、そのPHP版といったところです。
既存のクラスで同じことができなくもないんですが、定数の集合を明示することで読みやすくなります。
続きを読むPHP8.1から列挙型が追加されました。Enumという特殊なクラスです。
列挙型は定数をまとめたもの。Javaにはすでにあるんですが、そのPHP版といったところです。
既存のクラスで同じことができなくもないんですが、定数の集合を明示することで読みやすくなります。
続きを読むPHPに限らず、プログラミングのイコール(=)は値の代入、言いかえれば、右辺から左辺へのコピーです。
ただ、クラスのオブジェクトではちがう。コピーですらないので、知らないととんでもない間違いを犯します。
これはPHPでも同じ。オブジェクト指向プログラミング特有の現象。
続きを読むPHPのオブジェクトの代入(=)はシャローコピーなので、厳密にはコピーじゃありません。そこでやらないといけないのがオブジェクトのクローン作成。
PHPではcloneキーワードを付けるだけのように見えるんですが、やることは他にもあります。
そこはやっぱりJavaと似ている。
続きを読むPHPにはリファレンス(参照)というポインタのようなものがあります。クラスオブジェクトにも使えるんですが意味がありません。
クラスオブジェクトの変数代入は参照渡しで、それはリファレンスと同じ動きだから。関数のパラメータでも同じ。
ただリファレンスとオブジェクト代入の内部のしくみは全くの別物。
続きを読む今や、クラスを使うプログラミングは主流の一つになっています。
JavaやC++はオブジェクト指向言語のメジャーですが、それまでそうじゃなかったPHPが採用されて久しいほど浸透しています。
そこで出てくるのがシャローコピーとディープコピーという言葉です。
続きを読む文字列オフセットは、string型の変数を配列([])と同じ記述で文字列内の一文字をあつかうものです。
PHPの文字列オフセットの使い方を、原始的なC(C++)、変数の型に厳しいJava、最近メジャー昇格しているPythonのサンプルコードを使って比較していきます。
続きを読む