PHP のクラス
著者: Cool Bear
PHP を使用する上で最も理解するのが難しい概念は、PHP のクラスだと思います。 MySQL の基本的な知識を学んだことを除けば、他のデータベース エンジンを使用した経験はありません。これまで OOP オブジェクト指向プログラミングの経験がありませんでしたが、OOP の原理とその強力な理由を理解することで、OOP を使用してプログラムを実装することがどのようなものかをある程度理解できるようになりました。間違いなく強力なプログラムを手に入れることができますが、この理解をプログラミングの実践に適用せずに単に仕組みを理解したと考えている場合、OOP は常に机上の空論のレベルにとどまります。そこで、数日前、通常の関数を使用して一部の機能を実装するときに、オブジェクトを使用して実装してみたところ、確かに作業が簡単になることがわかりました。そこで、私のような人たちの助けになればと思い、これらの経験について書きました。
端的に言うと、クラスはいくつかの変数 (OOP 概念におけるメンバー変数、訳者注) と、これらの変数を操作するいくつかの関数 (OOP 概念におけるメンバー関数) のコレクションです。これは、プログラム内で現実の用語で問題を考える方法、つまりオブジェクトを説明する方法を提供します。逆に、オブジェクトまたはインスタンスは、このクラスの実際の実装です。たとえば、自転車を説明したいとします。適切な自転車クラスには次の変数が含まれている必要があります: $pedals (ペダル)、$chain (チェーン)、$front Wheel (前輪)、$rear Wheel (後輪)、$brakes (ブレーキ)、および $handl_bars(ハンドルバー)。実際の自転車の操作を参考にしてスクリプトを実装できます。たとえば、$Braking_Force を関数 Accelerate() に渡し、この変数を定義したインスタンスの他の変数 ($front_wheel、$rear_wheel など) に適用したり、操作の結果を返して対応する操作を実装したりできます。 。
見た目は綺麗ですが、これは通常の関数や変数でも実現できないのでしょうか?はい、プログラム内に自転車のインスタンスが 1 つしかない場合、それに対して別のクラスを定義することはあまり意味がありません。しかし、多数の自転車インスタンスが必要な場合はどうすればよいでしょうか?ただし、プログラム内の変数の受け渡しフローは非常に複雑になります。各自転車インスタンスで指定された変数がさまざまな関数に正しく受け渡されることを常に確認する必要があります。ただし、オブジェクトを使用すると、渡す変数の数が大幅に減ります。これは、オブジェクト内の処理関数 (翻訳者によるいわゆるメソッド) が、スコープがこのオブジェクトに限定されていると自動的に判断されるためです。そのため、オブジェクトが操作できる内容も制限されます。オブジェクトのスコープに限定されます。また、オブジェクト定義はさまざまなスクリプトに簡単に含めることができるため、さまざまなスクリプトで各バイクが同じように動作することが保証されます。
サイトのほぼすべてのページで使用する実際のクラスを作成してみましょう。参考になるものが見つかるかもしれません。
あなたの状況はわかりませんが、私にとって、動的な Web ページを書くときに最も嫌いなことは、プログラム フローについて考えるのを時々中断し、代わりに適切なプレゼンテーションについて考えなければならないことです。 HTMLの形式。その結果、フォント、フォントサイズ、背景、テキストの色を考慮するエネルギーがあまりないため、最終的に作成したページはあまり魅力的ではありません。解決策は、PHP クラスを通じてテキストをフォーマットし、HTML の出力属性をカスタマイズすることです。
このクラスに「スタイル」という名前を付けました。 HTML 属性の設定に重要な次のメンバー変数が含まれています。
var $text;
var $bgcol; ;
var $face;
var $size;
var $valign;
?> 上記の変数名はすでによく理解されていると思います。 . HTML 構文での名前。次に、Style クラスに Style という名前のメンバー関数を作成します。
class Style {
function Style ($text= "#000000",$alink= "#AA00AA",$vlink= "#AA00AA",$link= "#3333FF",$bgcol = "#999999",$face= "ブック アンティクア",$size=3,$align= "CENTER",$valign= "TOP") {
$this->text=$text; >alink=$alink;
$this->vlink=$vlink;
$this->bgcol=$bgt; ;
$this->size=$size;
$this->valign=$valign;
}
クラス内にそのクラスと同じ名前のメンバー関数を作成すると、そのクラスのインスタンスを作成するたびにこの関数が実行されます。この関数はコンストラクターと呼ばれます。このメカニズムを使用して、オブジェクトが作成されるたびに各 HTML 属性変数にデフォルト値を自動的に割り当てます。
上記の構文「=new ClassName;」は、クラス Style のインスタンス $Basic を宣言します。
クラスのインスタンスを宣言する際にパラメーターを渡すことで、クラス内の変数に異なる値を指定できます。ただし、変数の 1 つだけを変更することを宣言した場合でも、他のメンバー変数の値も指定する必要があります。この観点から見ると、クラスと通常の関数は同じです。たとえば、Style クラスのテキスト変数にデフォルト値以外の値を指定する場合は、他の変数も指定する必要があります。しかし、もっと簡単な方法があります (実際、これは一般的に使用される方法であり、新しいものではありません - 翻訳者注)。それは、クラスにメンバー関数を追加することによって、クラス内の変数の値を変更することです:
Function Set($varname,$value) {
$this->$varname=$value;
}
?> 次に、指定された変数の値を変更するコードを実装します。オブジェクトインスタンス内。
Set( 'size', '2');
オブジェクトである変数または関数を宣言するには、「->」演算子を使用する必要があります。上記のコードは、コード インタプリタに「$Basic で Set() メンバー関数を実行する」ように指示します。インタプリタは、$Basic が以前に宣言されているため、クラス Style のインスタンスであることを認識します。同様に、次のコード ($Basic->text など) を通じてインスタンスの変数を参照できます。
プロパティがデフォルト値とは若干異なるヘッダー スタイル オブジェクトを作成してみましょう。
$Theader= 新しいスタイル;
$Theader->Set( 'text', '#0000FF');
$Theader->Set( 'bgcol', '#000000');
?>
ここにいるだけで十分ですよね?これで、テーブルのヘッダーに青のテキストと黒の北京が表示されました。また、表の本体をホームページより少し明るいグレーにして、表の本体に黒のテキストと小さなテキストを入れたいと思いました。そのため、次のようにすることができます。 ;Set( 'bgcol', '#AAAAAA');
$Tbody->Set( 'size',2);
これでまだ使えます 彼は何をしに来たのですか?良い質問!この質問をしてよかったです。 Style を任意の HTML ページ オブジェクトで使用できるように、クラス内にさらにいくつかのメンバー関数を作成する必要があります。最初に行う必要があるのは、ページのプロパティを設定することです:
function Body() {
PRINT "

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









