オブジェクト|php5
/*
+---------------------------------------------- -- ----------------------------------+
| この記事は Haohappy<
| = クラスとオブジェクトの章のメモ
| = 不必要なトラブルを避けるため、転載はご遠慮ください
| PHP 愛好家全員で一緒に進歩しましょう
+------------------------------------------ --------- ----------------------------------+
*/
セクション3 -- クラスを定義します
クラスを宣言するときは、オブジェクトが持つ必要があるすべての変数とすべての関数 (プロパティとメソッドと呼ばれます) をリストする必要があります。クラスの構成は 3.1.1 に示されていることに注意してください。中括弧 ({}) 内でのみ変数または関数を宣言できます。 3.1.2 では、クラス内で 3 つのプロパティと 2 つのメソッドを定義する方法を示します。アクセス関数の宣言
}
3.1.2
//ユーザーを追跡するためのクラスを定義します
class User
{
//Attributes
private $password, $lastLogin; //メソッド
public function __construct($name, $password)
{
$this->name = $name;
$this->lastLogin = time();
$this->accesses++;
}
//最後のアクセス時刻を取得する
function 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 は型ヒントを与えていない可能性があります。整数、文字列、ブール値などの他の型については、型ヒントに配列型を含めるべきかどうかについてはまだ議論がありました。
型ヒントは、関数パラメーターまたは演算子のインスタンスのデータ型をテストするためのショートカットです。常にこのメソッドを返すことができます。引数は整数などのデータ型でなければなりません。 3.2.1 コンパイルされたクラスが Widget.
3.2.1
クラス ウィジェット
{
public $name='none' ;
public $created=FALSE;
//アセンブラ
クラス アセンブラ
{
public function make(Widget $w)
{
print( "$w->name
n を作成します");
$w->created=TRUE;
}
}
// コンポーネント オブジェクトを作成します
$thing = new Widget; name = 'Gadget';
//Assembly コンポーネント
Assembler: ; 一部のオブジェクト指向言語では、修飾されていない変数はローカル プロパティに送信されると想定されますが、PHP ではメソッドの変数は特定のスコープ内にのみ存在します。 User クラス (3.1.2) のコンストラクターでのこの変数の使用に注意してください。
PHP は、public、private、protected などのアクセス修飾子を定義します。クラス内で定数を宣言することもできます。これについては、この章の後半で説明します。アクセス メソッドに関する説明です。
同じアクセス メソッドを持つ複数の属性をカンマで区切って 1 行にリストできます。 3.1.2 では、User クラスには $password と $lastLogin という 2 つのプライベート属性があります。