ホームページ >バックエンド開発 >PHPチュートリアル >__construct()、__destory()、__get()、__set()、__call()、PHP の _PHP チュートリアル
(1) __construct() は PHP の組み込みコンストラクターで、オブジェクトがインスタンス化されると、最初にオブジェクトのこのメソッドが呼び出されます。
例: クラス Test
{
関数 __construct()
{
echo "これは __construct 関数です!";
}
関数 Test()
{
echo "これはテストです!";
}
}
$objTest = new Test; // 結果は「これは __construct 関数です!」です
(2) __destory() は、PHP の組み込みデストラクターです。このメソッドは、オブジェクトの削除またはオブジェクトの操作の終了時に呼び出され、リソースの解放などの操作を実行できます。
クラステスト
{
関数__destory()
{
echo "これは __destory 関数です!";
}
}
$objTest = new Test; // 結果は「これは __destory 関数です!」です
(3) __get() は、Java のさまざまなリフレクション操作と同様に、存在しないプロパティを読み取ろうとしたときに呼び出されます。
クラステスト
{
関数 __get($key)
{
echo $key, "存在しません!";
}
}
$objTest = 新しいテスト;
$objTest->Name; // 結果は「名前が存在しません!」です
(4) 存在しないプロパティに値を書き込もうとすると、__set() が呼び出されます。
クラステスト
{
関数 __set($key, $val)
{
echo "" . $val . "" を "に割り当てることができません。 $key;
}
}
$objTest = 新しいテスト;
$objTest->Name = "ljlwill"; // 結果は「名前に "ljlwill" を割り当てることができません」
(5) __call() このメソッドは、オブジェクト上に存在しないメソッドを呼び出そうとしたときに呼び出されます。
クラステスト
{
関数 __call($key, $args)
{
echo "関数 "". $key ."" は存在しません。引数は ".
}}
$objTest = 新しいテスト;
$objTest->getName("2004", "ljlwill");
// 結果は、関数 "getName" が存在しません。引数は次のとおりです: Array(
)
[0] => 2004;[1] =>
)
(6) __toString() は、Java の toString メソッドと同様に、オブジェクトを印刷するときに呼び出されます。この関数は、オブジェクトを直接印刷するときに呼び出されます。
{
関数 __toString()
{
return "これはテストです!";
}
}
$objTest = 新しいテスト;
eho $objTest; // 結果は「これがテストです!」です
(7) オブジェクトのクローン作成時に __clone() が呼び出されます。
{
関数 __clone()
{
echo 「私はクローンです!」 }
}
$objTest = 新しいテスト;
$objCloneTest = clone $objTest; // 結果は「クローンされました!」です