概要
ヤスケ
今まで使う機会がありませんでしたが、Traitを使う機会があったので使い方について書いて行きます。
Traitってlaravelの機能かと思ってた・・・
PHPのTraitとは?
PHP 5.4.0 以降では、コードを再利用するための「トレイト」という仕組みが導入されました。
トレイトは、PHP のような単一継承言語でコードを再利用するための仕組みのひとつです。
公式ページには上記のように書いています。
Traitはインスタンス化できないので、使うときはそれぞれのクラスの中でUse文を書いてあげます。
PHPのクラスの中で共通化したい処理をまとめてTraitに作っておいて、それをそれぞれ引っ張ってきて使うようなイメージかなと思います。
サンプルソース
RPG風のサンプルになりましたw(ドウシテコウナッタ)
Characterクラスを継承したHeroとSlimeがいて、それぞれ自分の名前を出力するメソッドと、
お金を取得する(おいていく)メソッドを持っています。=> これをCharacterクラスに実装せずにmoneyというTraitを作って、それぞれがUseして使っています。
親クラスに実装するまでもなく、それぞれに同じ振る舞いを持たせたいときに使っていくとよさそうですね。
ちなみに実行するとこうなります↓
$php test.php
ヤスケ「俺はヤスケです」
スライムA「スライムAダゾ」
ヤスケ「きみHPいくつよ?」
スライムA「999ですが何か?」
ヤスケ「ツヨ...」
ヤスケは451,176ゼニーを置いて逃げて行った。
スライムAは593,262ゼニーを置いて逃げて行った。
ではw 👋
コメント