?
1. Phpオブジェクト指向
オブジェクト指向の概念は、php4 バージョン、Phpこれは完全なオブジェクト指向プログラミング言語ではなく、オブジェクト指向の考え方を導入しているだけです。しかし、php は関連するメソッドをクラスに入れることができ、パラメータ渡しでオブジェクトを渡す機能も実現します。 Php5オブジェクト指向のより完全なサポート。したがって、Php はプロセス指向とオブジェクト指向の両方です。
1.1、???クラス、プロパティ、メソッドを定義します:
を PHP クラスを意味する を定義する場合、キーワード 「クラス」。 "var" で変数を宣言します。
クラス クラス名
{????????????}
クラス クラス名
{
var $variable1;
var $variable2;
…
}
クラス クラス名
{
var $variable1;
var $variable2;
関数 func1()
{???}
関数 func2($param1,param2)
{???}
}
1.2、??? クラスの使用法: 1)、クラスのインスタンス化: キーワード “new” を使用して作成しますクラスインスタンス。 $objectname = new classname(); $objectname = new classname(“a”); 2)、クラス属性の使用: クラス メンバー変数にアクセスするための特別なポインターがあります —$this。 $objectname = new classname(); $objectname -> 変数 = ‘プロパティ’; echo $objectname -> 変数; 3)、クラスメソッド呼び出し: $objectname = new classname(); $objectname -> func1(“a”); $value = $objectname -> func2 ("1","2") //戻り値を受け入れる変数を定義します 1.3、???コンストラクター、デストラクター: 1)、コンストラクター: クラス クラス名 { function _construct ($param) { ???????????? //コード } } 2)、デストラクター: コンストラクター に対応する はデストラクターであり、PHP5 が新しく追加されましたコンテンツ。デストラクタは、 によって 引数なしで オブジェクトが破棄されるときの関数です。 unset() を使用するか、単にスコープ外に出ると、自動的に呼び出されます。 クラス のデストラクター名は でなければなりません _destruct ( );デストラクターはパラメータを取ることができません; 1.4、??? クラスのアクセス制御: 1)、public はグローバル、 クラスを表します内部および外部のサブ クラス には にアクセスできます。デフォルトの修飾子。 2)、プライベート はプライベートを意味し、この クラスのみ は 内で を使用できます。 3)、保護 は保護された 、この クラス または子 クラス または親 クラス のみにはからアクセスできます。
1.5、???継承とインターフェイスの実装:
、継承 継承。 クラスが別のクラスのサブクラスである場合、キーワード "extends" を使用してその継承を示すことができますグアンの関係。
2)、インターフェース。 PHP5 ではインターフェースが多重継承の問題の解決策と見なされ、オブジェクトを便利に使用できます 「実装」。
???????????? インターフェース名1{
???????????????????????????function func1(); ???????????? } ????????????インターフェース名2{ ???????????????????????????function func2(); ???????????? } ????????????class classname は name1,name2 を実装します{ ??????????????????????????????function func1() { ?????????????????????????????? ?//ファンクションコード ???????????????????????????} ??????????????????????????????function func2() { ?????????????????????????????? ?//ファンクションコード ???????????????????????????} ???????????? }????????? ?> 1.6、???? ポリモーフィック実装: ポリ状態は、オブジェクトのペアです。 の実行時に に基づいて に オブジェクト引数を渡すには、 が動的に を決定します。 オブジェクト メソッドを使用した 🎜> 調整 。
クラスシェア
{
関数領域($x)
{
??????
}
}
クラスの四角形は形状を拡張します { 関数領域($x,$y); { ?????? return $x*$y; } } クラスの輪が広がります { 関数領域($x) { ?????? return 3.14*$x*$x; } } $a = new shap(); echo "グラフの辺の長さは次のとおりです: ".$a->area(“5”) .” $c = new Rectangle(); echo "長方形の面積は次のとおりです: ".$c->area("3" ,"5" )." $b = 新しい Circle(); echo "円の面積は次のとおりです: ".$b->area(“3” ).”
”;
";
”;
1.7、???スコープ解決演算子:
"::" スコープ解決演算子は、インスタンスを宣言せずにクラスまたは基本 クラス内の関数にアクセスできます 。
クラス A {
関数 func1{
}
}
A::func1();
1.8、???親キー単語:
は、 の基本 クラス のプロパティとメソッドにアクセスするために によって使用されます。
1.9、???最終キー単語:
キー が関数宣言の前で使用される場合、 🎜> 関数が が使用されます。 > は、任意の サブクラス クラス によってロードされます。 1.10、
静的キーワード: は、クラスを初期化せずにクラスのプロパティとメソッドを呼び出すことを許可するために使用されます。 クラス クラス名{
????????????
static function add($param1,$param2) {
???????????????????????????return $param1 $param2 ;
???????????? }
} echo クラス名 :: add (3,5);
注
: 静的メソッドでは、"this"
キーワードを使用できません。 no 参照できるオブジェクト インスタンス。例: 0401.php、
0402.php、0403.php ?
2、Php
エラーのデバッグと例外処理2.1、例外処理:
試してください {
????????????
//エラーが発生する場所
} 2.2
、例外をスローします:
thorw new Exception(‘message’,code); 2.3、例外をキャッチします:
を試してみましょう
??????{ ???????????? ????????? 新しい例外をスローします ('ひどいエラーが発生しました',42); ????????? } ??????キャッチ (例外 $e) ??????{ ???????????? ?????????エコー '例外' .$e ->getcode() ':' $e ->getmessage() ????????? } ?> 2.4、バグレポート: ファイルphp.ini: display_errors = オフ error_reporting = E_ALL ?