PHP 5.0 オブジェクト モデルの詳細な調査とクラスの定義

WBOY
リリース: 2016-06-21 08:59:31
オリジナル
1208 人が閲覧しました

クラスを宣言するときは、オブジェクトが持つ必要があるすべての変数とすべての関数 (プロパティとメソッドと呼ばれる) をリストする必要があります。リスト 1 は、クラスの構成を示しています。変数または関数は中括弧 ({}) 内でのみ宣言できることに注意してください。リスト 2 は、クラス内で 3 つのプロパティと 2 つのメソッドを定義する方法を示しています。

リスト 1

クラス名は別のクラスを拡張
{
アクセス変数宣言
アクセス関数宣言
}


リスト 2

//ユーザーを追跡するためのクラスを定義します
class User
{
//属性
public
private $password, $lastLogin; 🎜>
// メソッド
public function __construct($name, $password)
{
$this->name = $name
$this->password = $password; 🎜> $this->lastLogin = time();
$this->accesses++;
}

// 最終アクセス時刻を取得
関数 getLastLogin()
{
return(date("M d Y", $this->lastLogin));
}
}

// オブジェクトのインスタンスを作成します
$user = new User( "Leon", "sdf123");

//最終アクセス時刻を取得します
print($user->getLastLogin() ."
n"); 🎜>/ /Print user name
print("$user->name n");
?>

プロパティを宣言する場合、データ型を指定する必要はありません。変数は、状況に応じて、整数、文字列、または別のオブジェクトになります。プロパティを宣言するときにコメントを追加し、プロパティの意味とデータ型をマークすることをお勧めします。

メソッドを宣言すると、クラスの外で関数を定義するのと同じことになります。メソッドとプロパティには独自の名前空間があります。これは、クラスの外部関数と同じ名前のメソッドを、2 つが競合することなく安全に作成できることを意味します。たとえば、クラスは date() という名前のメソッドを定義できます。ただし、for や while など、PHP キーワードの後に​​メソッド名を付けることはできません。


クラス メソッドには、PHP でいわゆるタイプ ヒントが含まれる場合があります。タイプ ヒントは、スクリプトがメソッドを呼び出してインスタンスではない変数を渡す場合に、メソッドにパラメータを渡す別のクラスの名前です。このクラスの場合、PHP は「致命的エラー」を生成します。整数、文字列、ブール値などの他の型の型ヒントを指定することはできません。この記事の執筆時点では、型ヒントに配列型を含めるべきかどうかについては議論がありました。

型ヒントは、関数パラメーターまたは演算子のインスタンスのデータ型をテストするためのショートカットです。このメソッドは常に、パラメーターが のようなデータ型であることを確認してください。リスト 3 コンパイルされたクラスが Widget のインスタンスのみを生成するようにします。

リスト 3


//コンポーネント
クラス ウィジェット
{
public $name='none';

public $created=FALSE; 🎜>}

//Assembler
class Assembler
{
public function make(Widget $w)
{
print("Making $w->name
n");
$w->created=TRUE;
}
}

//コンポーネントオブジェクトを作成します
$thing = new Widget;
$ thing ->name = 'Gadget';

//Assembly コンポーネント
Assembler::make($thing);
?>

パラメータ、メソッドを渡す変数に加えて、特別な変数が含まれます。これは、オブジェクトのプロパティやその他のメソッドを指すために使用する必要があります。ただし、修飾されていない変数はローカル プロパティに送信されます。 PHP メソッドの任意の変数 メソッドの特定のスコープ内でのみ、User クラス (3.1.2) のコンストラクターでこの変数を使用することに注意してください。PHP はプロパティの宣言の前にアクセス修飾子を定義します。さらに、メンバーを「static」でマークすることもできます。また、クラス内で定数を宣言することもできます。さまざまなアクセス方法については後ほど説明します。

3.1.2 では、User クラスに $password と $lastLogin という 2 つのプライベート プロパティがあり、同じアクセス方法を持つ複数のプロパティを 1 行にリストできます。





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート