1|2|3コンストラクター/デストラクターインスタンスが作成されるときに自動的に走るメソッドとして「コンストラクター」というメソッドが、多くの言語に存在します。PHPにも、この「コンストラクター」が存在します。実際にコードを書いて、コンストラクターの存在を確認してみます。hoge();__constructメソッドは、明示的には呼ばれていません。「newされたタイミング」で自動で呼び出されます。その証左として、上述プログラムを動かすと「__constructメソッドをcallしていないのに、__constructメソッドが呼ばれている」様子が分かるかと思います。コンストラクターと対になる概念として「デストラクター」というメソッドがあります。デストラクターは言語によってあったりなかったりしますが(典型的には、Javaが「デストラクターのない」言語です)、PHPではデストラクターが存在します。デストラクターは「インスタンスが消去されるタイミング」で自動で呼び出されます。「消去されるタイミング」という状況を厳密に定義するのは少し難しいのですが、取りあえず「プログラム終了時」「変数のスコープが外れる」「インスタンスが入っている変数に別の値が代入される(典型的にはnullなどが代入される)」といったタイミングを意識しておくとよいでしょう。上述した三つのパターンのサンプルプログラムをそれぞれ書いて、デストラクターの存在、およびデストラクターが走るタイミングを確認してみます。「プログラム終了時にデストラクターが走る」と区別するためのsleepコンストラクターは、よく「インスタンスの初期化」などに用いられます。引数などで外部からデータを渡すことも可能です。エラーをreturnで返すことはできないので、「コンストラクターの処理でエラーになった」場合は、例外を投げる必要があります。デストラクターはあまり使われることがありませんが、主として「コンストラクターで確保したリソースの解放」などに用いられることが多いです。いった意味合いでも「コンストラクターと対になる」ことが多いと言えます。変数において「再代入の是非」というのが今でも議論されています。「再代入」というのは簡単に書くと「一度変数に何か値をいれた後で、別の値を上書きする」ことです。ここで変数$iに、値を再代入var_dump($i);こういった「再代入」は、関数型言語、と呼ばれる言語の世界観では「できない(あるいは好ましくない)」とされています。この「再代入の禁止」というのは、手続き型言語の一つであるPHPを「普通に」学んでいると、「全面的に取り入れる」のは難しいと思いますが、クラスの設計によっては「一度入れられた値を変える必要がない(または変えるとバグが発生しやすくなる)」もの、ということがあり得ます。いったときに「コンストラクターで値を設定、その後に値を変えることができない」クラス、というパターンが有効な場合があり、それを「イミュータブルなオブジェクト(不変オブジェクト)」という言い方をします。実装例を書いてみましょう。);イミュータブルなオブジェクトでは、コンストラクターでデータを決定させます。setterは作成しません。プロパティはもちろんprivateになります。イミュータブルなインスタンスは「再代入がない」ので、結果的に「そのインスタンスがどんな情報を持っているか」が明示的であり、「プログラムの流れによってインスタンスの状態が遷移する可能性がない」と言えます。その状況は結果的に「デバッグの容易性」「テストパターンの減少」など、いくつかのメリットを生じさせます。合格した」くらいの人だと、まだ少し難しい概念ですが、今は「そんなものもあるんだ」といった程度に覚えておいてください。いったさまざまな概念を状況に合わせて使いこなせるようになると、プログラミングの腕前が上がって、より良いコードが書けるようになります。次回は「継承」について次回は、オブジェクト指向プログラミングの中でも一つ大きなポイントになる「継承」について、書き方と考え方の両方向から解説していきます。1970年浅草生まれ。1995年に富士通系のソフトハウスに就職しプログラマーに転身。いったエンジニア支援活動を独自に展開し、占い師時代の「ガルーダ」という占い師名にちなんだ「がる先生」の愛称で親しまれている。コンサルティングからシステム設計、ネットワークにセキュリティと、守備範囲は比較的多岐にわたる。PHPプログラミングを始めるための基礎知識とXAMPPのインストールオープンソースのWeb開発向けスクリプト言語「PHP」の文法を一から学ぶための入門連載。7.1含め2017年の情報に合うように対応、XAMPP環境構築を追記】。ソースをダウンロード今回からPHPのビルドとインストールに入ります。PHPという言語の概要と、ソースコードの入手法を解説します(編集部)理論編:PHPについて知ろうスクリプトを記述するだけの簡単なプログラミングで、Web対応の高速なデータベースアプリケーションを実現する手法としてPHPが急速に注目を集めている。データベースはオープンソースのPostgreSQLだけでなく、Oracleなどの商用データベースも扱える。ここでは、5月にバージョンアップしたばかりのPHP4によるWeb-DBシステム構築法を紹介しよう。X+PHPでオールインワン環境(インストール編):Mac内にPHP4、5、6を同居させるコツPHP4の開発は終了したが、移行の問題は残されている。vol.11」が開催された。今回のレポートでは、「自分をプログラミング言語に例える」というお題に答えた5人の技術者の回答をみていく。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。