「PHPでオブジェクト指向入門4~コンストラクタ~」の編集履歴(バックアップ)一覧に戻る
前回記事PHPでオブジェクト指向入門3~メソッド~では、オブジェクト指向における関数の扱い方について記述していきました。 今度はインスタンス化したときの最後のカッコに引数を記述して実行する方法をまとめていきます。
目次
インスタンス化には「new クラス名()」でした。この空白のカッコを少し考えてきます。
インスタンス化した時点で、一気ににメソッドを実行できないか?という疑問が湧いてくると思います。
これができるのがコンストラクタです。
Calculator_Construct.php
<?php //Calculator_Construct.php class Calculator_Construct{ public $a; public $b; public $operate; public function __construct($a,$b,$operate){ $this->a = $a; $this->b = $b; $this->operate = $operate; } public function Show(){ print "{$this->a}と{$this->b}を{$this->operate}します。"; } } ?>
index.php
<?php //今ストラクタ require_once ('../class/Calculator_Construct.php'); $c = new Calculator_Construct(1,2,"足し算"); $c->Show(); ?>
__construct という表現が重要です。アンダーバーを2回記述します。そしてその後引数を定義し、組み立てていきます。
前回は、4行必要だったのに対し(今回の場合は引数3つあるので、合計5行必要だが・・)コンストラクタを利用することで、
2行で収まりました。
最初にインスタンス化するタイミングでメソッドを実行しました。
インスタンス化するタイミングでメソッドを実行するためにはコンストラクタを使います。
以上