ホームページ > バックエンド開発 > PHPチュートリアル > PHPオブジェクト指向開発のマジック関数を詳しく解説_PHPチュートリアル

PHPオブジェクト指向開発のマジック関数を詳しく解説_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:50:20
オリジナル
839 人が閲覧しました

PHP のマジック関数には、tostring、call、clone、autoload が含まれます。このチュートリアルがすべての友人に役立つことを願っています。

オブジェクト指向開発の概要

1. オブジェクトの説明と構成。 (オブジェクトの出力テキストの説明として理解できます)
2. オブジェクトメソッドの処理。 (例外が発生した場合の、より人道的なエラーメッセージをカスタマイズすると理解できます)
3. クローンオブジェクトの適用。 (元のオブジェクトと同じ別のオブジェクトを複製すると理解できます。別のものであることに注意してください。)
4. オブジェクトを自動的にロードする方法。 (引用として理解できます)

1. オブジェクトの説明と構成

メソッド名: __tostring()
形式:

コードは次のとおりです コードをコピー
私のクラス {
関数 __tostring() {
return "このクラスの説明をここに記述します"; // return を使用すると、echo でエラーが発生します。
}
}
$p = 新しい My();
エコー $p;

例:

コードは次のとおりです コードをコピー
クラス私の{
関数 __toString() {
return "このクラスの目的は地球を守ることです。";
}
}
$p = 新しい My();
エコー $p;
?>

2. オブジェクトメソッドの例外処理

存在しないオブジェクトメソッドを呼び出す際の例外処理により、プログラムは正常に実行されます。
メソッド名: __call($funname,$arr_value)
形式:

コードは次のとおりです コードをコピー
私のクラス {
関数 __call($n,$v) {
echo "間違ったメソッド名:".$n;
echo "間違ったパラメータ:".$v;
}
}

例:

コードは次のとおりです コードをコピー

クラス私の{
関数 __toString() {
return "このクラスの目的は地球を守ることです。";
}

関数 __call ($n,$v) {
echo "間違った方法です".$n."
";
echo "Wrong value".print_r($v).""; //値は配列で渡されるため、print_r が使用されます。
}
}
$p = 新しい My();
$p->demo("最初",6);
?>

3. オブジェクトのクローン作成

クローンでは、メモリ内に 2 つの同一のオブジェクトを生成したり、元のオブジェクトをアップグレードしたりできます。 (単純な割り当てではありませんが、メモリ内で 2 つのメモリ ブロックが開かれます。クローンとクローンは同じ属性とメソッドを持つ 2 つの異なるオブジェクトです)
メソッド名: __clone()
キーワード: クローン
形式:

コードは次のとおりです コードをコピー
私のクラス {
関数 __clone() {
echo "クローン作成時に自動的に呼び出される関数";
}
}
$a = 新しい My();
$b = $a のクローン;


例:

コードは次のとおりです コードをコピー

クラス私の{
public $name = "子ぶた";
関数 __toString() {
return "このクラスの目的は地球を守ることです。";
}

関数 __call ($n,$v) {
echo "間違った方法です".$n."
";
echo "Wrong value".print_r($v).""; //値は配列で渡されるため、print_r が使用されます。
}
}
$p = 新しい My();
$b = クローン $p;

echo $b->name="Little Pig Head"."
"; //これは、$b = $p が使用されている場合、$b-> を変更します。 name ="Little Pig Head"; と入力して $p を出力すると、これも変更されます。
echo $p->name; //これは $b によって複製された元のオブジェクトです。他のものはすべて同じですが、独立しています。
?>


4. オブジェクトを自動的にロードする方法


オブジェクト名をすばやく取得し、現在のページに自動的にロードします
メソッド名: __autoload()
形式:

コードは次のとおりです コードをコピー
関数 __autoload($class_n) {
include($class_n.".php");
}
$p = new MyPc() //自動呼び出しは以下のように実行されます
$d = 新しいデモ(); //include("mypc.php")

例:

コードは次のとおりです コードをコピー

関数 __aotoload ($class_name) {
include($class_name.".php"); //クラスの外で記述されます。
}

$p = new class_name(); //ここでインスタンス化されたクラス名は、上記の関数変数 $class_name に置き換えられます。これは非常に便利です。
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632640.html技術記事 PHP のマジック関数には、tostring、call、clone、autoload が含まれます。このチュートリアルがすべての友人に役立つことを願っています。 オブジェクト指向開発の概要 1. オブジェクトの記述と構成…
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート