PHPのクラスとオブジェクトの基礎をわかりやすく解説
はじめに
クラスとは、PHPにおけるユーザー定義のデータ型です。新しいクラスを定義するには、PHPが提供するキーワードclassを使用し、その後にクラス名を記述します。クラス名には、PHPの命名規則に従った有効なラベル(PHPの予約語を除く)であれば、任意の名前を付けることができます。クラスの構成要素は、クラス名に続く波括弧(中括弧)の中で定義します。
構文
class myclass{
//
}クラスには、定数、変数(プロパティ)、そして関数に似た「メソッド」を含めることができます。
クラスの定義例
次の例は、クラスを定義する方法を示したものです。
例
<?php
class myclass{
const MYCONSTANT=100;
public $var1="Hello";
function dispvar(){
echo $this->var1;
}
}
?>
クラス内で定義された関数は「メソッド」と呼ばれます。メソッドの中では、疑似変数$thisを通じて、呼び出し元のオブジェクトのコンテキストにアクセスできます。メソッドがstaticとして定義されている場合は、クラス名を使ってアクセスします。なお、非staticメソッドを静的に呼び出す書き方は、PHP 7で非推奨(deprecated)となっているため注意が必要です。
オブジェクトの生成
new演算子を使うと、指定したクラスの新しいオブジェクトを生成できます。「new」キーワードの後に、クラス名と括弧を記述します。括弧内に引数を指定しない場合は、プロパティがデフォルト値で初期化された(または未初期化の)オブジェクトが作成されます。クラスがパラメータ付きのコンストラクタを定義している場合は、それに一致する数の引数を渡す必要があります。また、インスタンス(オブジェクト)を生成する前に、対象となるクラスが定義されている必要があります。
例
<?php
class myclass{
const MYCONSTANT=100;
public $var1="Hello";
function dispvar(){
echo $this->var1;
}
}
$obj=new myclass();
$obj->dispvar();
?>
出力結果
上記のコードを実行すると、次の結果が出力されます。
Hello
-
PHPのis_a()関数の使い方を徹底解説!オブジェクトのクラス判定方法
PHPのis_a()関数は、オブジェクトが指定したクラスのインスタンスであるか、あるいはそのクラスを親(祖先)に持つかどうかを判定するための関数です。条件に一致すればTRUE、一致しなければFALSEを返します。この関数は、インターフェースを実装しているかどうかの確認にも利用できるため、オブジェクト指向プログラミングにおいて型チェックを行う際に非常に便利です。構文is_a(object, class)パラメータobject − 判定対象となるオブジェクトを指定します。class − 判定するクラス名またはインターフェース名を文字列で指定します。戻り値
-
PHPのget_class()関数とは?使い方とサンプルコードを解説
PHPのget_class()関数は、オブジェクトが属するクラス名を取得するための関数です。引数に渡された値がオブジェクトでない場合にはFALSEを返します。また、クラス内部でobject引数を省略して呼び出した場合には、そのクラス自身の名前が返されます。構文get_class(object)パラメータobject − 検査対象となるオブジェクトです。クラスの内部で呼び出す場合は、このパラメータを省略できます。戻り値get_class()関数は、指定されたオブジェクトのクラス名を文字列として返します。引数がオブジェクトでない場合はFALSEを返します。クラス内部