PHP オブジェクト指向の学習ノート? 構築、破壊、オブジェクトの割り当て、複製
クラスの生徒
{
スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー'' s '' '' '' '' '' '' '' stol — ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ - パスecho $this->stu_name; // $this 访问该对象的成人员变量
}
}
$stu = 新しい Student; // オブジェクトを作成します
$stu->stu_id = '0607001';
$stu->stu_name = 'シャオ・リー';
$stu->sayName();
注:
クラスの学生
{public $ stu_id; // public $ stu_name; $stu_name');}
}
$stu = 新しい学生
を作成します
$stu->stu_id = '0607001';$stu->stu_name = 'Xiao Li';
$stu->sayName();
注: クラスで定義された属性は、クラスで定義されたグローバル変数と同等ではないため、クラスで直接アクセスすることはできません。メソッド内の属性変数の形式。
1. 構築と破棄:
PHP の opp メカニズムは、new が完了すると __construct() というメソッドの呼び出しを試みます。
このメソッドに初期化コードを記述すると自動初期化が完了します。
: :
クラス学生
{
Public $ Stu_id;
Public $ Stu_name;
{$ This ->stu_id= $id; ;
注 :コンストラクターにパラメータがない場合、$stu = new Student と $stu = new Student() は両方とも正しいです。
コンストラクター メソッドの互換性の問題:
php5 では、コンストラクター メソッドの名前は __construct() です。php5 より前では、コンストラクター メソッドの名前はクラスと同じでした。互換性を確保するために、クラスと同じ名前のコンストラクターもサポートされます。
__construct() とクラス名のコンストラクターが同時に出現する場合:
class Student
{
public $stu_id;
public $stu_name
public Function __ConStruct ()
{
}}}
{{
{{{{
} } {
$stu = 新入生;
出力:construct run …
結論: 2 つの構築メソッドが同時に現れた場合は、__construct() を呼び出します
破棄:
オブジェクトが破棄されると、メソッドも自動的に破棄されます実行されました。
開発方法は次のとおりです。__destruct();オブジェクトそのもの!
オブジェクトはどのような状況で破棄されますか:
1. スクリプト サイクルが終了すると、オブジェクトは自動的に破棄されます。
2. オブジェクトを保持している変数を破棄します。
$stu = new Student;
unset($stu);
出力: デストラクター メソッド呼び出し
3. オブジェクトを保持する変数には他のデータが割り当てられます。
$stu = new Student;
$stu = “new Value”; // 他のデータを割り当てると、Student オブジェクトは破棄されます。
オブジェクト間の代入
オブジェクトはアンパサンドなしの参照受け渡しをサポートしているため、 = 代入を通じて新しいオブジェクトを取得することはできません。 public __construct($id,$name)
stu_id= $id; tu2 = $stu1;
echo $stu1->stu_name;
echo $stu2->stu_name;
$stu1->stu_name = “ソンヤン”;
echo $stu1->stu_name;
echo $stu2-&g t ;stu_name;
出力: ソングソングソンヤンソンヤン
クローン
既存のオブジェクトを使用して、同じ新しいオブジェクトを取得します。
キーワード clone を使用する必要があります
新しいオブジェクト = 既存のオブジェクトのクローン
class Student
{
public $stu_id;
stu_name;
public function __construct ( $id,$name)
}
$stu1 = 新しい生徒( "100","song");
$stu2 = クローン $stu1;
echo >stu_name;
エコー$stu2->stu_name;
$stu1->stu_name = "松陽" ;
echo $stu1->stu_name;
echo $stu2->stu_name;
出力: 歌 歌 松陽 歌
一般的な操作では、オブジェクトのクローンを作成するときに、いくつかの特別な属性が変更される必要があります。これは、何らかの特別な処理が必要であることを意味します。
クローン作成時に自動的に呼び出されるメソッド __clone() を使用します。
クローン化されたオブジェクトを自動的に使用して __clone() メソッドを呼び出します。これは、メソッド内の $this が新しいオブジェクトを表すことを意味します。
: : : : :
クラスの生徒
{public $ stu_id
public $ stu_name;
public function __construct($id,$name)
{
$this->stu_id= $id;
$this->stu_name= $name;
}
パブリック関数 __clone()
{
$this->stu_id= “0607002”;
}
}
$stu1 = 新入生(“1000”,”ジョーカー”);
$stu2 = クローン $stu1;
echo $stu1->stu_id;
echo $stu2->stu_id;
输出:1000 0607002