ホームページ > バックエンド開発 > PHPチュートリアル > php とはどのような種類のファイルで、どのソフトウェアを使用して開くことができますか_PHP チュートリアル

php とはどのような種類のファイルで、どのソフトウェアを使用して開くことができますか_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:51:09
オリジナル
775 人が閲覧しました



質問
php とはどのようなファイルですか? どのソフトウェアを使用して開くことができますか? 解決策
PHP は、ネストされた略語名で、英語の Hypertext Preprocessing Language (PHP: Hypertext Preprocessor) の略称です。 PHP は HTML 埋め込み言語であり、Microsoft の ASP に似ています。どちらも HTML ドキュメントに埋め込まれ、言語のスタイルは C 言語に似ています。 Web サイトのプログラマーによって広く使用されています。 PHP の独自の構文は、C、Java、Perl、および PHP 独自の革新的な構文を組み合わせたものです。 CGI や Perl よりも高速に動的 Web ページを実行できます。 PHP で作成された動的ページは、他のプログラミング言語と比較して、プログラムを HTML ドキュメントに埋め込んで実行するため、HTML タグを完全に生成する CGI よりも実行効率が高く、同じく HTML に埋め込まれているスクリプト言語 JavaScript と比較して、対照的に、PHP はサーバー側で実行され、サーバーのパフォーマンスを最大限に活用します。PHP 実行エンジンは、ユーザーが頻繁にアクセスする PHP プログラムもメモリに保存するため、他のユーザーがアクセスするときにプログラムを再コンパイルする必要はありません。プログラムを再度メモリ内で直接実行するだけです。これも PHP の効率の高さの現れの 1 つです。 PHP には非常に強力な機能があり、すべての CGI または JavaScript 関数を PHP で実装でき、ほとんどすべての一般的なデータベースとオペレーティング システムをサポートしています。 //PHP オープンソース コード

PHP はもともと 1994 年に Rasmus Lerdorf によって作成されました。PHP は、彼自身の Web サイトへの訪問者をカウントするために Perl 言語で書かれた単純なプログラムとして始まりました。その後、データベースへのアクセスも含めてC言語で書き直されました。最初のバージョンは 1995 年に Personal Home Page Tools (PHP Tools) としてリリースされ、Lerdorf はプログラムを紹介するドキュメントを作成し、PHP 1.0 をリリースしました。この初期バージョンでは、ゲストブックや来訪者カウンターなどの簡単な機能が提供されていました。将来的には、PHP を使用する Web サイトがますます増え、ループ ステートメントや配列変数などの機能を追加する必要性が強くなりました。開発チームに新しいメンバーが加わった後、1995 年半ばに PHP 2.0 がリリースされました。 2 番目のバージョンは PHP/FI (フォーム インタプリタ) と呼ばれます。 PHP/FI は mSQL のサポートを追加し、それ以来、動的 Web 開発における PHP の地位を確立しました。 1996 年末までに、PHP/FI を使用する Web サイトは 15,000 ありましたが、1997 年半ばまでに、PHP/FI を使用する Web サイトの数は 50,000 を超えました。 1997 年半ばに、開発チームに Zeev Suraski と Andi Gutmans が加わり、3 番目のバージョンは PHP3 と呼ばれ、多くの新機能が追加されました。 。 //OSPHP.COM.Cn オープンソース

PHP の機能は次のとおりです:

オープンソース: 事実上すべての PHP ソース コードが利用可能です。

PHPは無料です。

サーバー側に基づく: PHP はサーバー側で実行されるスクリプトであるため、UNIX、LINUX、および WINDOWS で実行できます。

HTML の埋め込み: PHP は HTML 言語を埋め込むことができるため、習得は難しくありません。

シンプルな言語: Java の C++ とは異なり、PHP は主要な言語としてスクリプト言語を使用することを主張します。

高効率: PHP が消費するシステム リソースは大幅に少なくなります。

画像処理: PHP を使用して動的に画像を作成します

PHP 3 と PHP 4 の比較

PHP3 は Apache サーバーと緊密に統合されており、その継続的な更新と新機能、およびほとんどすべての主流データベースと非主流データベースのサポートにより、1999 年半ばには最も人気のあるサイトになりました。 150万以上。さらに、そのソースコードは完全に公開されており、オープンソース意識の高まりに伴い、この点で主流となっています。新しい関数ライブラリの継続的な追加と継続的な更新の活力により、PHP は UNIX、LINUX、または Windows プラットフォーム上でより多くの新しい関数を搭載できるようになります。プログラミングをより良くサポートする豊富な機能を提供します。 //PHP オープンソース コード

PHP4.0 のスクリプト プログラム全体のコアは、プログラムの実行速度がより高速な要件を満たすことができるように大幅に変更されました。最適化後の効率は、従来の CGI または ASP プログラムよりも優れています。さらに強力な新機能とより豊富な機能ライブラリもあります。あなたがそれを受け入れるかどうかに関係なく、PHP は Web CGI の分野に革命を起こすでしょう。プロのWebマスターにとっても必須コースの1つとなります。

PHP 4.0 は、ほとんどの場合、PHP 3.0 よりも高速に動作する、より効率的で信頼性の高い動的 Web ページ開発ツールです。最も重要な特徴は、速度比が向上していることです。 PHP 4.0 のこれらの優れたパフォーマンスは、PHP スクリプト エンジンの再設計の結果です。このエンジンは、AndiGutmans と Zeev Suraski によってボトムアップで完全に書き直されました。 PHP 4.0 のスクリプト エンジンである Zend エンジンは、PHP 3.0 で採用されている解析時に実行するモデルではなく、より効率的なコンパイルと実行のアプローチを使用します。

PHP4 は、バージョン 3.0 に基づいて、主に次のような多くの便利な機能を追加または強化しています:

(1) エイ​​リアス: PHP4 では、参照を使用して変数に値を割り当てることができ、プログラミングに大きな柔軟性をもたらします。
//OSPHP.com.CN


(2) 拡張 API モジュール: PHP 4.0 は、古い API バージョンよりも大幅に高速な、拡張 API モジュール用の拡張 PHP インターフェイス モジュールを提供します。 PHP モジュールの既存の最も一般的に使用されるインターフェイスのほとんどは、この拡張インターフェイスを使用するように変換されています。

(3) リソースの自動解放:PHP4 に参照カウント機能を追加 この新技術の導入により、PHP4 に自動メモリ管理機能が追加され、開発者の負担が軽減されます。

(4) ブール型: PHP 4.0 はブール型をサポートします。

(5) プロセス生成: UNIX 環境の PHP 4.0 は、automake/libtool に基づくシステム生成テクノロジを使用して、非常にインテリジェントで多用途な生成プロセスを提供します。

(6) COM/DCOM サポート: PHP 4.0 は、COM オブジェクトにシームレスにアクセスおよびアクセスできる COM/DCOM サポート (Windows 環境のみ) を提供します。

(7) PHP 3.0 との非常に優れた互換性: PHP 4.0 は、PHP 3.0 コードとほぼ 100% の下位互換性があります。 PHP 4 のアーキテクチャが改善されたため、いくつかの微妙な違いがありますが、ほとんどの人はおそらくこの状況に遭遇することはありません。

//OSPHP.com.CN

PHP 入門

(8) 構成: PHP4 は PHP を再設計および強化します。 ini ファイルは PHP を使用して作成されます。 ini を使用して PHP を設定するのは非常に簡単です。このファイルは、実行時に Apache (UNIX システム) または Windows (Windows 環境) によって登録できます。

(9) 暗号化のサポート: PHP4 は完全な暗号化を実装しており、これらの暗号化関数は完全な mycrypt ライブラリであり、PHP 4.0 はハッシュ関数をサポートしています。 Blowfish、TripleDES、MD5、SHA1 なども使用できる暗号化アルゴリズムの一部です。

(10) 型チェック: PHP 4.0 は型チェック用に同じ演算子をサポートしています: === (3 つの等号演算子)。これは 2 つの値とその型の間をチェックします。たとえば、3 ===3 は false (型が異なる) とみなされ、3 ==3 (等しい) は true とみなされます。

(11) FTP サポート: PHP 4.0 は FTP をサポートします。通常は、モデム接続を介して大きなファイルをダウンロードするためのインターフェイスを提供します。ただし、本当に必要な場合は、PHP を使用できます。

(12) PHP4 の新機能または機能強化: PHP 4.0 では、多くの新機能が追加され、また、多くの既存機能も強化されています。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start()strip_tags() unset()
//オープンソース OSPhP.COM.CN


(13) Here 印刷: PHP 4.0 の Here 印刷は Perl に似ていますが、まったく異なります。 HTMLファイルなどの大量の記事を、目次タグなど1文字も欠けずに印刷する場合に便利な方法をご紹介します。

(14) HTTP セッション フォールバック システム: HTTP セッション管理のフォールバック システムが PHP 4.0 に実装されています。デフォルトでは、セッション識別子は Cookie に保存されます。 Cookie がサポートされていない場合、または Cookie タスクが失敗した場合、セッション ID が自動的に作成され、URL のクエリ文字列に組み込まれます。

(15) ISAPI サポート: PHP 4.0 は、IIS プラグインとしてパーソナライズされた ISAPI モジュールとして使用できます。これは、外部プログラムとして実行される PHP 3.0 よりも効率的です。

(16) メモリ: PHP 4.0 はメモリをより効率的に使用できるため、主に参照カウント テクノロジの実装によりメモリ消費量が削減されます。

(17) 他クラスのメンバー関数: PHP 4.0 では、メンバー関数自体のスコープ内またはグローバル スコープ内で、他のクラスのメンバー関数を呼び出すことができます。たとえば、親関数を子関数でオーバーライドし、子関数内で親関数を呼び出すことができます。 //オープンソース OSPhP.COM.CN

(18) 多次元配列: PHP 4.0 では、GET、POST、Cookie を使用したデータ送信で多次元配列がサポートされています。

(19) パーソナライズされた HTTP セッションのサポート: フォールバック システム管理を含む HTTP セッションの処理は、PHP 4.0 の新しいライブラリ関数によって実装されます。バージョン 3.0 でセッションを処理するには、PHPLIB およびサードパーティのライブラリ関数を使用する必要があります。これは、PHP でセッションを直接サポートする場合よりもはるかに時間がかかります。

(20) パーソナライズされた Java サポート: PHP 4.0 は Java との対話をサポートします。このパーソナライズされた Java サポートにより、Java オブジェクトのメソッドを作成および使用するためのシンプルで効率的なツールが PHP に提供されます。

21) オブジェクトとネストされた数値グループ: PHP 4.0 は、より強力なオブジェクトを実装し、PHP 3.0 に存在したさまざまな構文制限を削除します。ニーズに応じて、オブジェクトを配列内でネストしたり、その逆を行うことができます。

(22) オブジェクト指向プログラミング: PHP 4.0 は、オブジェクト指向プログラミングおよびクラスとオブジェクトの構築のための拡張機能と新機能を提供します。 PHP4 は、オブジェクトのオーバーロードや参照テクノロジなどの新しいテクノロジを実装します。

(23) オブジェクト オーバーロードのサポート: オブジェクト オーバーロード構文により、サードパーティのオブジェクト指向クラス ライブラリが PHP4 のオブジェクト指向機能を使用して独自の関数にアクセスできるようになります。この機能を使用する COM モジュールが実装されています。
//PHP オープンソース コード


(24) 出力バッファリングのサポート: PHP は、出力バッファリング関数のコレクションを提供します。出力バッファリングのサポートにより、圧縮されたバッファーの周囲に関数をラップする関数を作成できます。 PHP4 の出力バッファリングのサポートにより、HTML 本文が出力されるかどうかに関係なく、HTML ヘッダー情報を保存できます。ヘッダー情報 ((header()、コンテンツ タイプ、Cookie) はバッファリングを使用しません。

(25) PCRE ライブラリの追加: PHP 4.0 には Perl 互換の正規表現 (PCRE) ライブラリが含まれており、通常の正規表現ライブラリとともに PHP にバンドルされています。 PCRE の分割および置換機能がサポートされています。 PCRE と Perl の正規表現の間には、微妙な違いがいくつかあります。

(26) PHP.ini ファイル: PHP.ini ファイルは PHP4.0 で再設計され、PHP.ini を使用した PHP の設定がより簡単かつ効率的になりました。すべてのファイルは、実行時に Apache (Apache の場合) または Windows レジストリ (Windows の場合) によって操作できます。 PHP.ini ファイルに追加された構成ディレクティブは、すべての関連モジュールで自動的にサポートされます。

(27) 参照カウント: PHP 4.0 は、リソースを含むシステム内のすべての値の参照カウントを提供します。リソースがどの変数からも参照されなくなると、メモリ リソースを節約するために自動的に解放されます。この機能を利用する最もわかりやすい例は、SQL クエリに組み込まれたループ ステートメントです。 PHP 3.0 では、別の再帰 SQL 結果セットがメモリに繰り返し適用されるたびに、これらの結果セットによって占有されていたメモリは、スクリプトが実行されるまで解放されません。 //オープンソース OSPhP.COM.CN

(28) 参照のサポート: 変数の値は参照を通じて変更できます。

(29) 関数の実行時バインディング: PHP 4.0 の実行時バインディング機能を使用すると、宣言がコードの後半か実行時かに関係なく、関数が宣言される前に関数を呼び出すことができます。

(30) クラス実行時情報: PHP 4.0 は、実行時に次のクラス情報へのアクセスをサポートします: オブジェクトのクラス名、オブジェクトの親クラスのクラス名、オブジェクトの関数の名前。

(31) サーバー抽象化レイヤー: Web サーバーをサポートするための拡張 SAPI (サーバー API) インターフェイスを提供します。これは、PHP 4.0 の不可欠な部分です。このサーバー抽象化レイヤーは、ユニバーサル WEB サーバー インターフェイスのサポート、マルチスレッド WEB サーバーのサポート、および Apache、IIS (ISAPI)、AOL サーバーを含むほとんどの WEB サーバーの透過的なサポートを提供します。

(32) 構文ハイライト表示: PHP 4.0 の構文ハイライト表示により、開発者はスクリプトの代わりにソース コードを確認できます。この機能は PHP 3.0 よりも効果的です。より高速に実行され、パフォーマンスが向上し、よりコンパクトな HTML コードが生成されます。
//PHP オープンソース コード

(33) 参照による変数の値の変更: PHP 4.0 は、2 つの「関連付けられた」変数のいずれかの値が変更されると、もう一方の変数の値も変更されます。 C のポインター型へ。

(34) 参照文字列内の変数参照: PHP 4.0 では、参照文字列内の変数参照が強化されています。

PHP のデータベースの豊富なサポートも、PHP が次のデータベースまたはデータ ファイルをサポートしている理由の 1 つです。
· アダバスD
· DBA
· dBase
· データベース
· ファイルプロ
· インフォミックス
· インターベース
· mSQL
· Microsoft SQL サーバー
· MySQL
・しっかり
· サイベース
· ODBC
· オラクル 8
· オラクル
· PostgreSQL

インターネットでは、電子メール ネットワーク管理システム SNMP に関連する IMAP および POP3、グローバル情報ネットワーク HTTP および Apache ディレクトリ プロトコル LDAP など、多数の通信プロトコルもサポートしています。 。

さらに、PHP で書かれた Web バックエンド CGI プログラムは、さまざまなオペレーティング システムに簡単に移植できます。たとえば、最初に Web サイトを Linux 上に構築した場合、システム負荷が高すぎる場合、CGI プログラムを再コンパイルすることなく、システム全体を SUN ワークステーションにすぐに移行できます。インターネットの急速な発展に直面して、これは長期的な計画を立てるのに最適な選択です。
//オープンソースコードOSPHP.COM.Cn



変数の型:
PHP には多くの種類の変数があります。主なものは次のとおりです。 - 数値 (整数 - 例: 32)
- ブール値 - 例: TRUE)
- 文字列 (文字列 - 例: 'テキストの文字列')
- ヌル
- リソース
- 配列 (配列 - 例: 配列名[2])

文法:

文法には 3 つのタイプがあります:
//コメント
/* コメント */
#コメント

基本的な「制御構造」:

* もし...そうでなければ
if (条件 == true) ;
* もし...そうでなければ
if (条件 == true)
else if (condition2 == true) ;

PHP の例:






「ハローワールド」をエコーし​​ます
//OSPHP.COM.CN


?>



ご覧ください:
php公式サイト:[url=http://www.php.net/]リンクタグwww.php.net[/url]
PHP のオブジェクト指向のサポート
オブジェクト指向プログラミングの概念:
作者によって意見は異なるかもしれませんが、OOP 言語には次の側面がなければなりません:
抽象データ型と情報のカプセル化
継承
ポリモーフィズム
PHP では、カプセル化はクラスを通じて完了します:

クラス何か {
// OOP クラスでは、通常、最初の文字は大文字です
変数 $x; 関数 setX($v) {
// メソッドは小文字の単語で始まり、getValueOfArea() のように大文字を使用して単語を区切ります
$this->x=$v
}

関数 getX() {
$this->x を返す
}
}

もちろん、自分の好みに応じて定義することもできますが、標準を維持する方が効果的です。データ メンバーは、「var」宣言を使用してクラス内で定義されます。データ メンバーに値が割り当てられるまでは、データ メンバーには型がありません。データ メンバーには、整数、配列、連想配列、またはオブジェクトを指定できます。メソッドはクラス内の関数として定義されます。メソッド内のクラス メンバー変数にアクセスする場合は、$this->name を使用する必要があります。それ以外の場合、メソッドにはローカル変数のみを使用できます。
//OSPHP.COM.Cn オープンソース



new 演算子を使用してオブジェクトを作成します:
$obj=新しい何か

その後、次の方法でメンバー関数を使用できます:

$obj->setX(5)
$see=$obj->getX();
この例では、setX メンバー関数がオブジェクトのメンバー変数 x (クラスではない) に 5 を代入し、getX がその値 5 を返します。 $obj->x=6 のようなクラス参照を通じてデータ メンバーにアクセスできます。これは OOP の良い習慣ではありません。メソッドを通じてメンバー変数にアクセスすることを強くお勧めします。メンバー変数を操作不可能なものとして扱い、オブジェクト ハンドルを介してのみメソッドを使用すれば、優れた OOP プログラマーになれるでしょう。残念ながら、PHP はプライベート メンバー変数の宣言をサポートしていないため、PHP では不正なコードが許可されています。 PHP では継承を簡単に実装できます。extend キーワードを使用するだけです。

class Another は何かを拡張します {
変数 $y;
関数 setY($v) {
$this->y=$v
}

関数 getY() {
$this->y を返す
//OSPHP.com.CN


}

}

「Another」クラスのオブジェクトには、親クラス (Something) のすべてのデータ メンバーとメソッドが含まれるようになり、独自のデータ メンバーとメソッドも追加されます。


を使用できます $obj2=新しい何か
$obj2->setX(6); $obj2->setY(7);
現在、PHP は多重継承をサポートしていないため、2 つ以上のクラスから新しいクラスを派生することはできません。派生クラスでメソッドを再定義できます。「Another」クラスで getX メソッドを再定義すると、「Something」で getX メソッドを使用できなくなります。派生クラスで基本クラスと同じ名前のデータ メンバーを宣言すると、それを扱うときに基本クラスのデータ メンバーが「隠蔽」されます。

クラス内でコンストラクターを定義できます。コンストラクターはクラス名と同じ名前のメソッドで、クラスのオブジェクトを作成するときに呼び出されます。例:

クラス何か {
変数 $x;
関数何か($y) {
$this->x=$y
//OsPHP.COM.CN

}

関数 setX($v) {
$this->x=$v
}

関数 getX() {
$this->x を返す
}

}

したがって、次のようにしてオブジェクトを作成できます:
$obj=新しい何か(6);
コンストラクターはデータ変数 x に 6 を自動的に割り当てます。コンストラクターとメソッドは通常の PHP 関数であるため、デフォルトのパラメーターを使用できます。

関数何か($x="3",$y="5")

次へ:

$obj=new Something() // x=3 と y=5
; $obj=new Something(8) // x=8 および y=5
; $obj=new Something(8,9) // x=8 および y=9
;
デフォルトのパラメータは C++ メソッドを使用するため、Y の値を無視して X にデフォルトのパラメータを指定することはできません。パラメータは左から右に割り当てられ、渡されたパラメータが必要なパラメータより小さい場合は、そのパラメータが使用されます。 . デフォルトのパラメータ。

派生クラスのオブジェクトが作成されると、そのコンストラクターのみが呼び出され、親クラスのコンストラクターは呼び出されません。基本クラスのコンストラクターを呼び出したい場合は、派生クラスのコンストラクターで明示的に呼び出す必要があります。クラス。これが可能なのは、親クラスのすべてのメソッドが派生クラスで使用できるためです。 //oSPHP.COM.CN

関数 Another() {
$this->y=5
$this->何か()
; //呼び出し元の基本クラスのコンストラクターを表示します

}

OOP の優れたメカニズムは、抽象クラスの使用です。抽象クラスはインスタンス化できず、派生クラスへのインターフェイスのみを提供できます。設計者は多くの場合、抽象クラスを使用してプログラマに基本クラスからの派生を強制し、新しいクラスに必要な機能が確実に含まれるようにします。 PHP には標準メソッドはありませんが、この機能が必要な場合は、基本クラスを定義し、そのコンストラクターの後に「die」呼び出しを追加して、基本クラスがインスタンス化されないようにすることができます。その後に「die」ステートメントを追加します。各メソッド (インターフェイス) に依存するため、プログラマが派生クラスのメソッドをオーバーライドしないと、エラーが発生します。また、PHP は型指定されていないため、オブジェクトが基底クラスからの派生クラスであることを確認し、クラスの ID を定義する (ある種の識別 ID を返す) メソッドを基底クラスに追加する必要がある場合があります。オブジェクトパラメータを受け取るときにこの値を確認してください。もちろん、邪悪なプログラマーが派生クラスでこのメソッドをオーバーライドした場合、このメソッドは機能しませんが、一般に問題は邪悪なプログラマーではなく怠惰なプログラマーに見られます。 //OsPHP.COM.CN

もちろん、基本クラスをプログラマに見えないようにすることができるのは便利です。プログラマはインターフェイスを出力して仕事をするだけです。 PHP にはデストラクターがありません。

オーバーロード (オーバーライドとは異なり) は PHP ではサポートされていません。 OOP では、メソッドをオーバーロードして、同じ名前で (言語に応じて) パラメータの数やタイプが異なる 2 つ以上のメソッドを実装できます。 PHP は型付けが緩い言語であるため、型によるオーバーロードは機能しませんが、異なる数のパラメーターによるオーバーロードも機能しません。

場合によっては、OOP でコンストラクターをオーバーロードすると、さまざまな方法 (さまざまな数の引数を渡す) でオブジェクトを作成できるようになります。 PHP でこれを実現するコツは次のとおりです:


クラス Myclass {
関数 Myclass() {
$name="Myclass".func_num_args(); $this->$name(); // $this->name() は一般的に間違っていることに注意してください。ただし、ここで $name は呼び出されるメソッドの名前です

}

function Myclass1($x) { //オープンソースコード OSPHP.COM.Cn
コード;
}

関数 Myclass2($x,$y) {
コード;
}

}

このクラスの使用は、クラス内の追加処理を通じてユーザーに透過的です:

$obj1=new Myclass('1') //Myclass1 が呼び出されます
; $obj2=new Myclass('1','2') //Myclass2 が呼び出されます
;
場合によっては、これは非常に便利です。

ポリモーフィズム

ポリモーフィズムはオブジェクトの機能であり、実行時に渡されたオブジェクト パラメータに基づいてどのオブジェクト メソッドを呼び出すかを決定できます。たとえば、Figure クラスがある場合は、draw メソッドを定義します。そして、Circle クラスと Rectangle クラスを派生させ、派生クラスでdraw メソッドをオーバーライドし、パラメーター x を期待して $x->draw() を呼び出すことができる関数を持つこともできます。ポリモーフィズムがある場合、どの描画メソッドが呼び出されるかは、関数に渡すオブジェクトのタイプによって異なります。

ポリモーフィズムは、PHP のようなインタープリター型言語では非常に重要です (C++ コンパイラーがこのようなコードを生成すると想像してください。どのメソッドを呼び出す必要がありますか? また、オブジェクトのタイプもわかりません。まあ、それは重要ではありません) 簡単で自然。したがって、当然のことながら、PHP はポリモーフィズムをサポートします。 //oSPHP.COM.CN


関数 niceDrawing($x) {
//これが Board クラスのメソッドであると仮定します
$x->draw(); }

$obj=新しいサークル(3,187)
; $obj2=新しい長方形(4,5)
$board->niceDrawing($obj);
//Circle の描画メソッドが呼び出されます

$board->niceDrawing($obj2);
// Rectangle の描画メソッドが呼び出されます

PHP を使用したオブジェクト指向プログラミング

一部の「純粋主義者」は、PHP は真のオブジェクト指向言語ではないと言うかもしれませんが、これは真実です。 PHP はハイブリッド言語であり、OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。

プロジェクトが大きくなるにつれて、OOP コードは保守しやすく、理解しやすく、再利用しやすいので便利です。これらはソフトウェアエンジニアリングの基礎です。これらの概念を Web ベースのプロジェクトに適用することが、将来の Web サイトの成功の鍵となります。
//オープンソース OSPhP.COM.CN


PHP の高度な OOP テクノロジー

基本的な OOP の概念を理解した後、より高度なテクニックを紹介します:

連載中

PHP は永続オブジェクトをサポートしません。OOP では、永続オブジェクトは、複数のアプリケーションの参照間で状態と機能を維持できるオブジェクトであり、オブジェクトをファイルまたはデータベースに保存し、後でそのオブジェクトをロードできることを意味します。 。これはいわゆるシリアル化メカニズムです。 PHP にはオブジェクトに対して呼び出すことができるシリアル化メソッドがあり、シリアル化メソッドはオブジェクトの文字列表現を返すことができます。ただし、シリアル化ではオブジェクトのメンバー データのみが保存され、メソッドは保存されません。

PHP4 では、オブジェクトを文字列 $s にシリアル化してからオブジェクトを解放し、オブジェクトを $obj に逆シリアル化すると、オブジェクトのメソッドを引き続き使用できます。これを行うことはお勧めしません。(a) ドキュメントには、この動作が将来のバージョンでも機能するという保証がないからです。 (b) これにより、シリアル化されたバージョンをディスクに保存してスクリプトを終了するときに、誤解が生じる可能性があります。後でこのスクリプトを実行する場合、文字列表現にはメソッドがまったく含まれていないため、オブジェクトを逆シリアル化するときにオブジェクトのメソッドが存在することは期待できません。 //PHP オープンソース コード

つまり、PHP でのシリアル化は、オブジェクトのメンバー変数を保存するのに非常に役立ちます。 (関連する配列や配列をファイルにシリアル化することもできます)。

例:


$obj=新しいClassfoo();
$str=シリアル化($obj);
// $str をディスクに保存します

//数か月後

// str をディスクからロードします

$obj2=シリアル化解除($str)

メンバー データは復元されましたが、メソッドは復元されませんでした (ドキュメントによると)。これにより、メンバー変数にアクセスするには $obj2->x を使用するような方法しかなくなります (他に方法はありません)。自宅では試さないでください。

この問題を解決するにはいくつかの方法がありますが、この簡潔な記事ではあまりにもひどいため省略しました。私は、PHP の次のバージョンでの完全にシリアル化された機能を喜んで歓迎します。

データ ストレージ用のクラスの使用 PHP と OOP の優れた点の 1 つは、何かを実行するクラスを簡単に定義し、それを使用したいときにいつでも対応するクラスを呼び出すことができることです。ユーザーが製品 ID 番号を選択して製品を選択できる HTML フォームがあるとします。データベースに製品情報があり、その製品とその価格などを表示したいとします。さまざまなタイプの製品があり、同じアクションでも製品ごとに異なる意味を持ちます。たとえば、サウンドを表示するということは、そのサウンドを再生することを意味する場合がありますが、他の種類の製品の場合は、データベースに保存されている画像を表示することを意味する場合があります。 OOP または PHP を使用すると、コーディングを削減し、品質を向上させることができます: //oSPHP.COM.CN

製品クラスを定義し、それに必要なメソッド (例: 表示) を定義してから、製品クラス (SoundItem クラス、ViewableItem クラスなど) から派生して、製品のメソッドをカバーする、製品のタイプごとのクラスを定義します。クラスを使用して、希望どおりに動作させることができます。

データベース内の各製品のタイプ フィールドに従ってクラスに名前を付けます。一般的な製品テーブルには (ID、タイプ、価格、説明などのフィールド) が含まれます。その後、処理スクリプトでデータベースからクラスを取得できます。から type 値を取得し、 type という名前のオブジェクトをインスタンス化します。


$obj=新しい$type();
$obj->アクション()

これは PHP の非常に優れた機能で、オブジェクトの種類を考慮せずに $obj の表示メソッドやその他のメソッドを呼び出すことができます。この手法を使用すると、新しいタイプのオブジェクトを追加するためにスクリプトを変更する必要はなく、それを処理するクラスを追加するだけで済みます。

この関数は非常に強力です。すべてのオブジェクトの型を考慮せずにメソッドを定義し、それらを異なるメソッドの異なるクラスに実装して、任意のオブジェクトのメイン スクリプトで使用します。2 人のプログラマが必要です。ただ幸せです。
//オープンソースコードOSPhP.COm.CN



プログラミングは簡単で、メンテナンスは安価で、再利用可能であることに同意しますか?

プログラマーのグループを管理する場合、各人がオブジェクトの種類とそれを処理するクラスを担当することができ、作業を分散することが非常に簡単になります。

ユーザーが選択した言語分野に応じて対応するクラスを適用するだけで、この技術を通じて国際化を実現できます。

コピーしてクローンを作成します

$obj のオブジェクトを作成する場合、$obj2=$obj によってオブジェクトをコピーできます。新しいオブジェクトは $obj のコピー (参照ではありません) なので、その時点の $obj の状態を持ちます。場合によっては、これを実行したくない場合もあります。obj クラスのような新しいオブジェクトを生成したい場合は、 new ステートメントを使用してクラスのコンストラクターを呼び出すことができます。これは、PHP でもシリアル化と基本クラスを通じて実現できますが、他のすべてのクラスは基本クラスから派生する必要があります。

危険区域に入ります

オブジェクトをシリアル化すると、何らかの形式で文字列が得られます。興味があればそれを調べることができます。文字列にはクラスの名前が含まれており (素晴らしい!)、次のように取り出すことができます。 //OSPHP.com.CN



$herring=シリアル化($obj); $vec=explode(':',$herring); $nam=str_replace(""",'',$vec[2]);

したがって、「Universe」クラスを作成し、すべてのクラスを強制的にユニバースから拡張すると仮定すると、次のようにユニバースでクローン メソッドを定義できます。
クラス ユニバース {
関数 clone() {
$herring=シリアル化($this); $vec=explode(':',$herring); $nam=str_replace(""",'',$vec[2]);
$ret=新しい$nam
$ret を返します。 }
}

//それでは

$obj=新しい何か()
//ユニバースから拡張
$other=$obj->clone();
取得するのは、新しい Something クラス オブジェクトです。これは、new メソッドを使用してコンストラクターを呼び出して作成されたオブジェクトと同じです。これがうまくいくかどうかはわかりませんが、経験則として、ユニバース クラスは派生クラスの名前を知っていると考えられます。限界があるのは想像力だけです。


参考回答
笑・・明けましておめでとうございます・・
とても助かりました…ふふふ…
応援してね·
参考回答
基本的には十分です~[img]http://www.111cn.cn/bbs/images/smilies/default/funk.gif[/img]
参考回答
ふふ。 。 。初心者向け。 。非常に包括的です! ! ! !
参考回答
基本的なことについて話しましょう。 。 。最後に、シリアル化についても触れました。 。 。
参考回答
とても水っぽい気がします。
参考回答
水っぽすぎる。 。





http://www.bkjia.com/PHPjc/632575.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/632575.html

php とはどのようなファイルなのかについての質問です。 ソリューションを開くために使用できるソフトウェアはどれですか。 PHP は、英語の Hypertext Preprocessing Language (PHP: Hypertext Preprocessor) の略称です。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート