クラスを宣言するときは、オブジェクトが持つ必要があるすべての変数とすべての関数 (プロパティとメソッドと呼ばれる) をリストする必要があります。リスト 1 は、クラスの構成を示しています。変数または関数は中括弧 ({}) 内でのみ宣言できることに注意してください。リスト 2 は、クラス内で 3 つのプロパティと 2 つのメソッドを定義する方法を示しています。
リスト 1
クラス名は別のクラスを拡張
{
アクセス変数宣言
アクセス関数宣言
}
//ユーザーを追跡するためのクラスを定義します
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 キーワードの後にメソッド名を付けることはできません。
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 行にリストできます。