どうも、チャーさんです。
あなたはphpのオブジェクト指向である、
コンストラクタとはなんだろうか、
と思っていませんか?
この記事では、このコンストラクタについて、
そしてコンストラクタの使い方・書き方について、
説明しています。
なので、あなたがコンストラクタについて、
疑問や知りたいことがあれば、
このままスクロールして読んでみてください。
スポンサードサーチ
目次
phpのオブジェクト指向のコンストラクトとは何か?
で結論から話します。
コンストラクタとは、
クラスを元に、インスタンスを作った時に、
自動的に実行されるメソッド(関数)のことです。
またコンストラクタは、
実際にどう記述すればよいかというと、
function __construct(){
}
とクラス内に書きましょう。
例
class クラス名 {
function __construct(){
ここに処理内容を書く。
}
}
このクラスの中の中括弧の中にある、
このfunction __construct(){ }
の部分がコンストラクタになります。
で、construct以下の中括弧内に書いた記述が、
インスタンス生成時に実行されるという仕組みです。
とはいえ、文字だけの説明だと、
少しわかりづらいと思いますので、
実際にコードと実行例を見せようと思います。
と言うことで以下の画像が、
実際のコードと実行した画面です。
tanakaと出力されてますね。
でコンストラクタについて補足しますとこのコードでは、
$tanaka = new Person(“tanaka”);
の部分でインスタンスを作った時に、
constructの中括弧の中の、
$this->name=$name;
が自動で(呼び出さなくても)実行されてます。
その証拠にインスタンスを作った後に、
echo $tanaka->name;と書くと、
tanakaと出力されてるわけです。
このように、コンストラクタとは、
インスタンス生成時に自動で実行されるメソッドです。
クラスの外でメソッドを呼び出さなくていいのです。
なのでコンストラクタの処理内容のとこに、
あなたがさせたい処理を書いておきましょう。
例えば上の画像のようにプロパティの代入などを、
インスタンス生成と同時に行うと楽です。
phpオブジェクト指向のコンストラクタでは引数を取れる
で、さっきと同じ実行画面ですが、
見ていただいてわかるとおり、
コンストラクタでは引数を取れます。
このconstruct($name){
}の$nameの部分が引数です。
で、インスタンス生成時に引数を()内に
書いておけば、引数を渡すことができます。
この画像で言うと、
$tanaka= new Person(“tanaka”);
のPersonの後ろのtanakaの部分です。
これを渡すことにより、
__construct($name){
$this->name=$name;
}
の$this->nameに$name(“tanaka”)が、
代入されるわけです。
と、言う風に、
phpのオブジェクト指向のコンストラクタには、
こういう便利な仕組みがあるので、
コンストラクタ生成時の処理に使うと良いでしょう。
スポンサードサーチ
phpオブジェクト指向のコンストラクタの書き方
それでは、コンストラクタの書き方について、
説明します。
1クラスを作る
まずはクラスを書きましょう。
クラスの書き方は、
classと書いてその後ろに半角スペースを入れて、
クラス名を書きましょう。
であとは中括弧を書きましょう。
クラス名はなんでもいいですが、
最初の一文字目は大文字です。
あとわかりやすい名前にした方がいいです。
例
class Staff {
}
2コンストラクタの記述を書く
で、それがかけたら、
次はpublic function __construct(){}
と書きましょう。
なので、以下のようになります。
例
class Staff {
public function __construct(){
}
}
ちなみにfunctionの前にはpublicと書いて、
アクセスできるようにしときましょう。
そしてfunctionの後ろには半角スペースをあけて、
アンダーバーを2つ書きましょう。
半角スペースを入れないと、
エラーになるので注意しましょう。
3実行したい処理を書く
そして、__construct(){}
の中括弧内にインスタンス生成時にさせたい、
動作を書きましょう。
プロパティに代入させるなどの記述を書くと楽です。
4インスタンスを生成する
そして次にインスタンスを生成しましょう。
コンストラクタはインスタンス生成時に実行されます。
なので、インスタンスを生成しないと何も動きません。
と言うことでインスタンスを作るのを、
忘れないようにしましょう。
例
class Staff {
public function __construct($name){
$this->name = $name;
}
}
$john = new Staff(“john”); (ここがインスタンスの生成の記述)
これでコンストラクタの動作は完了です。
スポンサードサーチ
まとめ
まとめに入ります。
コンストラクタとは?ですが、
インスタンス生成時に実行されるメソッドのことです。
引数を渡すことができるので、
クラス内のプロパティに値を代入できたり楽です。
覚えるとお得なので、
ぜひこの記事を参考に覚えてかつ、
あなた自身で実践してみてください。
それでは、読んでもらってありがとうございました。
チャーさん