PHPのコンストラクタ継承
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
PHPのコンストラクタ継承についてのまとめ。
サブクラスでコンストラクタを定義するとき、および定義しないときで、スーパークラスのコンストラクタ呼び出しが自動で行われるかどうか挙動が変わる。(テストはPHP5.2.6)
スポンサーリンク
サブクラスでコンストラクタを定義しない場合
class PhpSuperClass { var $x; var $y; function __construct($x, $y) { $this->x = $x; $this->y = $y; } } class PhpSubClass extends PhpSuperClass { function display() { echo $this->x . "、" . $this->y; } } $o1 = new PhpSubClass('山田さん', 'こんにちは'); $o1->display();
実行結果。
山田さん、こんにちは
サブクラスで、コンストラクタ定義を行わなければ、サブクラスのインスタンス化により、自動的にスーパークラスのコンストラクタが呼び出されます。
サブクラスでコンストラクタを定義する場合
class PhpSuperClass { var $x; var $y; function __construct($x, $y) { $this->x = $x; $this->y = $y; } } class PhpSubClass extends PhpSuperClass { function __construct($x, $y) { } function display() { echo $this->x . "、" . $this->y; } } $o1 = new PhpSubClass('山田さん', 'こんにちは'); $o1->display();
実行結果。
、
function __construct($x, $y) を、サブクラスにおいて定義した場合、スーパークラスのコンストラクタは自動的には呼び出されなくなります。
ですので、スーパークラスのコンストラクタを呼び出したい場合は、以下のように明示的に呼び出す必要がある。
サブクラスのコンストラクタで、スーパークラスのコンストラクタを明示的に呼び出す
class PhpSuperClass { var $x; var $y; function __construct($x, $y) { $this->x = $x; $this->y = $y; } } class PhpSubClass extends PhpSuperClass { function __construct($x, $y) { parent::__construct($x, $y); } function display() { echo $this->x . "、" . $this->y; } } $o1 = new PhpSubClass('山田さん', 'こんにちは'); $o1->display();
parent::__construct($x, $y); と明示的に呼び出すことで、サブクラスのインスタンス化により、スーパークラスのコンストラクタが呼び出される。
スポンサーリンク
<< 前の記事 : URLを簡単に組み立てるPHP関数
- - 関連記事 -
- strpos() や strcmp() など間違えやすいif文での判定
- htmlentities() と htmlspecialchars() の違い
- PHPの内部エンコードと出力文字コード、スクリプト文字コード
- PHPのデバッグ・xdebugをxamppで有効にする
- CakePHPの日本語対応、国際化
- コマンドラインでPHPが起動できない
- 直接ファイルが実行されたときだけ起動するスクリプト
- ディレクトリを探索してリンク一覧表示
- PHPとRubyのコードの書き方を比較
- コメントアウトの使い分けと、/*** ~ ***/とか// — を単語登録
- PHPでvar_dump()を使ったお手軽デバッグコード
- プログラミング練習問題をPHPで解いてみた
- CakePHPはMVCかつフルスタックのフレームワーク
- PHP5のクラス定義とオブジェクトのおさらい
- フレームワークCakePHPにチャレンジ
- sort・asort・ksort 配列を並べ替える関数
- foreach構文
- PHPの配列
- strcmp関数
- strcasecmp関数
スポンサーリンク