オブジェクト指向構文

php

PHP入門 オブジェクト指向 クラスの自動ローディング

クラスは複数のスクリプトから再利用するというその性質上、1クラスを1ファイルで管理すべきです。1クラス1ファイルなら無駄なクラスを読み込む必要もなく、ファイル管理という観点からも整理しやすくなります。ただ、1クラス1ファイル方式で作成していくと、扱うクラスが増えてきた場合、クラスファイル1つ1つをrequire_once命令を呼び出さなくてはなりません。spl_autoload_register関...
php

PHP入門 オブジェクト指向 名前空間

名前空間とは、クラスや関数の苗字や所属のようなものです。たくさんのクラスや関数を定義すると、名前が思わないところで衝突することがあります。そのような場合、従来であれば名前そのものを長くする方法しかありませんでした。名前空間を使えば、クラス名はかなりシンプルなものにすることができます。名前空間の基本名前空間を定義するのは、namespace命令です。構文:namespace命令namespace 名...
php

PHP入門 オブジェクト指向 マジックメソッド

PHPのマジックメソッド(__get/__set/__isset/__unset/__call/__callStatic/__toString/__invoke/__clone/__debuginfo)について解説しています。マジックメソッドとはPHPでは、あらかじめ特定の役割を与えられたメソッドとして、マジックメソッドが用意されています。たとえば、__constructや__desctructも...
php

PHP入門 オブジェクト指向 オブジェクトの操作

オブジェクトの代入や比較、反復処理について解説しています。オブジェクトの代入変数の代入は値渡しが既定ですが、オブジェクト変数だけは例外的に参照渡しが既定です。<?phprequire_once 'Person.php';$p1 = new Person('太郎','山田');$p2 = $p1; //オブジェクトを代入$p2->firstName = '花子';$p2->lastName = '工...
php

PHP入門 オブジェクト指向 トレイト

トレイト(Trait)とは、再利用可能なコード(メソッド/プロパティ)をまとめて切り出しておくための仕組みです。「断片的なクラス」と言ってもよいかもしれません。トレイトとして切り出したコードは、あとから個々のクラスに取り込むことが可能です。トレイトの基本MachineTrait.php<?phptrait MachineTrait{ private string $starting = 'Star...
php

PHP入門 オブジェクト指向 ポリモーフィズム

ポリモーフィズムについて解説しています。ポリモーフィズムとはポリモーフィズムとは、同名のメソッドで異なる挙動を実現すること言います。Figure.php<?phpclass Figure{ //プロパティを定義(protected修飾子で制限) protected float $width; protected float $height; //コンストラクター(プロパティを初期化) public...
php

PHP入門 オブジェクト指向 継承

継承(Inheritance)とは、基になるクラスの機能(メソッド)を引き継ぎながら、新たな機能を追加したり、元の機能一部だけを修正したりする仕組みです。このとき、継承元となるクラスのことをスーパークラス(親クラス、基底クラス)、継承の結果できたクラスのことをサブクラス(子クラス、派生クラス)と呼びます。継承の基本継承するには、クラス定義の際にextendsキーワードでスーパークラスを指定します。...
php

PHP入門 オブジェクト指向 カプセル化

PHPのカプセル化(アクセス修飾子とアクセサーメソッド)について解説しています。カプセル化とはカプセル化(Encapsu-lation)とは、クラスの機能のうち、使い手に必要のない処理を隠してしまうことです。ブラックボックス化とも言います。アクセス修飾子クラスの世界で、不要な機能を隠す役割を担っているはアクセス修飾子です。PHPで利用可能なアクセス修飾子アクセス修飾子概要publicどこからでもア...
php

PHP入門 オブジェクト指向 クラス定義

PHPのクラス定義のクラス命名方法、プロパティ定義、メソッド定義、コンストラクター、デストラクター、静的メソッド、静的プロパティ、クラス定数について解説しています。クラスの定義クラスとは、関数や変数/定数を収めるための器です。クラスの構造構文:class命令class クラス名{ ・・・プロパティ/メソッドの定義}中身のない簡単なクラスを定義<?phpclass Person{ }定義したクラスの...