PHP には、クラス、メソッド、属性、および単一継承 (拡張機能) のみがあります。 C、Java、Delphi などのオブジェクト指向言語を使用してプログラムを開発することに慣れていないユーザーは、まずオブジェクト指向の概念に関する本を読むとよいと思います。たくさんの利益があります。
以下の例は trolley クラスです。ご覧のとおり、class を使用すると、それがクラス カテゴリであることを示します。 add_item などのカテゴリ内の関数は、クラスのメソッドを表します。メソッドはクラスの実際の処理状況をカプセル化することができ、カプセル化されたメソッドに従ってクラス自体がいくつかのステップを実行できるようになります。
プログラム内の $this クラス変数も、$GLOBALS 変数や $php_errormsg 変数と同様、PHP の特殊変数です。 $this 変数は、クラス自体を表すためにクラス カテゴリ内でのみ使用されます。
コードをコピー コードは次のとおりです:
// プログラム名: cart.inc
class Cart {
var $items; // Cart class
// このメソッドは $num 個のアイテムをカートに追加します ($artnr 変数に追加されます)
function add_item ($artnr) , $num ) {
$this->items[$artnr] = $num;
}
// このメソッドは、カートから $num 個のアイテムを減らします ($artnr 変数から減算されます)。 )
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
?> > 使用方法 トロリーは以下の例のように使用できます。まず各クラスをインクルード ファイルとして保存し、それからそれを要求またはインクルードすることができます。変数 $cart を定義するときは、予約語 new を使用して、$cart が Cart クラスを使用することを示します。 -> 記号を使用して、クラス メソッドの実行を示します。
require("cart.inc") ; $cart = new Cart; $cart->add_item("10", 1);
後で登録したカートをデザインします。登録済みトロリーはトロリーから継承されるため、トロリーが持つメソッドと属性は登録済みトロリーでも使用でき、登録済みトロリーにはトロリーよりも追加の名前メソッド (属性と呼ぶ方が適切かもしれません) があります。
次の例からわかるように、サブクラス Named_Cart は extends を使用して親クラス Cart を継承します。 Named_Cart クラスには項目を追加したり項目を減らしたりするメソッドはありませんが、その遺伝的特性により、親クラスが持つすべてのものが備わっています。
// プログラム名:named_cart.inc require("cart.inc"); class Named_Cart extends Cart { var $owner;
function set_owner ($name) {$this->owner = $name;
}
}
?>
名前付き trolley クラスを使用するには、以下の例を参照してください。もちろん、これはあまり良い設計ではありません。各サブクラスは常にその親クラスを必要とするため、I/O でサーバーに負担がかかります。実装中に、最も古い祖先クラスから最後の子孫クラスまで、一連のクラス全体を同じプログラム ファイルに配置できるため、将来の改訂も容易になります。
コードをコピー
require("named_cart.inc") ; $ncart = new Named_Cart; // クラス変数を作成します$ncart->set_owner ("CyberRidder") // クラスの名前付き属性を設定しますecho $ncart->owner; ; // クラスの Named 属性を表示します
$ncart->add_item ("10", 1) // 親クラスから継承する方法も使用できます
したがって、PHP で extends 予約語を使用し、適切なシステム分析と完全な CRC カード設計 (詳細についてはオブジェクト指向の書籍を参照) を組み合わせると、PHP は強力なクラス機能を備えた CGI 言語になることができます。
PHP はスクリプト言語 (Script) であるため、ソフトウェア エンジニアリングのコンポーネントのブラック ボックスは、現在の PHP バージョンでは表示されません。つまり、すべてのクラスが非表示になります。コンテンツ。ソフトウェア業界にとって、いわゆるソフトウェア IC を保護する方法はありません。オープン コミュニティの観点からは、ソース コードがあることは良いことです。何が正しいか、何が間違っているかについては判断が困難です。しかし、現在、PHP は依然として Molecule コミュニティの一部であり、将来的には Zend エンジンがクラスのカプセル化の機能を実現できるようになるかもしれません。