🐘
PHPのクラス周りを復習
クラス基本
class クラス名
{
プロパティ 👉 変数
メソッド 👉 関数
}
$インスタンス名 = new クラス名();
$インスタンス->プロパティ;
$インスタンス->メソッド(引数);
インスタンスを別クラスに渡す
👉 依存関係を生みやすい
$hoge = new Poyo();
$fuga = new Piyo();
$fuga->メソッド($hoge);
抽象クラスと継承
👉 依存関係を生みやすい
abstract class 抽象クラス名//スーパークラス
{
プロパティ
メソッド
抽象メソッド 👉 サブクラスで再定義する必要がある 👉 再定義することをオーバーライドという
}
class 抽象クラス名 extends クラス名//サブクラス
{
プロパティ
メソッド
parent::メソッド名//スーパークラスのメソッドを呼び出せる
}
オーバーライド・・・スーパークラスと同じ引数/戻り値で同じ名前のメソッドをサブクラスに定義
👉 メソッドにfinelとつけてオーバーライドさせないようにできる
オーバーロード・・・スーパークラスと違う引数/戻り値で同じ名前のメソッドをサブクラスに定義
👉 オーバーロードはPHPで許可されていないが、コンストラクタのみ例外としてオーバーロードを実装できる
トレイト
👉 依存関係を生みやすい
trait トレイト名
{
メソッド
}
class クラス名
{
use トレイト名
}
インターフェース
👉 依存関係を生みにくい
interface インターフェース名
{
抽象メソッド
}
class クラス名 implements インターフェース名
{
抽象メソッドの実装
}
Discussion