これは、人間が子供を産むのと同じで(なぜ子供を産まなければならないのですか?老化を防ぐためだけですか?わかりません)、あなたは自分自身の遺伝子の一部を取り出し、自分自身の遺伝子を取り除きます。妻の遺伝子の一部は、新しい個体に再生されます。この新しい人格には、必ず二人の特徴が含まれます。これは、生物学における遺伝(遺伝)の説明です。プログラミングの世界では、継承は継承です。
まず、継承の生きた原則を理解した後、PHP クラスの継承がそれほど神秘的ではなくなるかどうかを見ていきたいと思います。たぶん、私たち自身があまりにも複雑なので、そもそも神秘的ではないのかもしれません。相続するためには「根」が必要ですが、この「根」は、将来息子や娘が生まれた場合に、何かの「物(性質や方法)」を手に入れることを想像するかもしれません。あなたは、あなたの「子孫」があなた(ルーツ)のすべての特性を継承し続けるようにします。これを文法を使って PHP のオブジェクト指向言語でどのように表現するかを説明しましょう (人間のように直接的にはできません。結婚すると、しばらくすると子孫が生まれます)
1. 「ルート」クラス (親) を生成します。 class) または基本クラス)
構文: class Father{
}
1.「子孫」(サブクラス) を生成する
構文: class Son extends Father{
}
説明: 親クラス通常のクラスの子孫が必要な場合は、通常のクラスの後に extends キーワードを追加するだけでよく、サブクラスには親クラスのすべての属性とメソッドのみが含まれます。実はとても簡単なことなのです。
ここで実際的なことをしてみましょう。結局のところ、PHP クラスの継承で親クラスとサブクラスを定義することは、特定のタスクを完了することです。ここでのタスクは比較的単調です。人間を例に挙げると、人間には名前 (属性) があり、睡眠と食事 (メソッド) が必要です。この基本的なタスクを使用して、このセクションの知識を完成させましょう。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?php </span></span></span></li> <li><span>class father{ </span></li> <li class="alt"><span>protected $name; </span></li> <li><span>function __construct($name){ </span></li> <li class="alt"> <span>$this-</span><span class="tag">></span><span class="attribute">name</span><span>=$name; </span> </li> <li><span>} </span></li> <li class="alt"><span>function __destruct(){ </span></li> <li> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}也是要死的</span><span class="tag"><span> </span><span class="tag-name">br</span><span class="tag">/></span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span></span> </li> <li class="alt"><span>} </span></li> <li><span>//这个就是所谓的构造函数,用来初始化 </span></li> <li class="alt"><span>function go_to_sleeping(){ </span></li> <li> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}想睡觉.</span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span> </li> <li class="alt"><span>} </span></li> <li><span>function eat(){ </span></li> <li class="alt"> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}想吃饭.</span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span> </li> <li><span>} </span></li> <li class="alt"><span>} </span></li> <li><span>class son extends father{ </span></li> <li class="alt"><span>function playing(){ </span></li> <li><span>//小孩子会很调皮的,当然他也是要吃要睡的生物 </span></li> <li class="alt"> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}正在捣蛋...</span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span> </li> <li><span>} </span></li> <li class="alt"><span>} </span></li> <li> <span>$</span><span class="attribute">your_father</span><span>=</span><span class="attribute-value">new</span><span> father("老爸"); </span> </li> <li class="alt"> <span>$your_father-</span><span class="tag">></span><span>go_to_sleeping(); </span> </li> <li> <span>$your_father-</span><span class="tag">></span><span>eat(); </span> </li> <li class="alt"> <span>$</span><span class="attribute">my_son</span><span>=</span><span class="attribute-value">new</span><span> son('宝贝'); </span> </li> <li> <span>$my_son-</span><span class="tag">></span><span>go_to_sleeping(); </span> </li> <li class="alt"> <span>$my_son-</span><span class="tag">></span><span>eat(); </span> </li> <li> <span>$my_son-</span><span class="tag">></span><span>playing(); </span> </li> <li class="alt"> <span class="tag">?></span><span> </span> </li> <li><span class="tag"><span> ?php </span></span></li> <li class="alt"><span>class father{ </span></li> <li><span>protected $name; </span></li> <li class="alt"><span>function __construct($name){ </span></li> <li> <span>$this-</span><span class="tag">></span><span class="attribute">name</span><span>=$name; </span> </li> <li class="alt"><span>} </span></li> <li><span>function __destruct(){ </span></li> <li class="alt"> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}也是要死的</span><span class="tag"><span> </span><span class="tag-name">br</span><span class="tag">/></span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span></span> </li> <li><span>} </span></li> <li class="alt"><span>//这个就是所谓的构造函数,用来初始化 </span></li> <li><span>function go_to_sleeping(){ </span></li> <li class="alt"> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}想睡觉.</span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span> </li> <li><span>} </span></li> <li class="alt"><span>function eat(){ </span></li> <li> <span>echo "</span><span class="tag"><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}想吃饭.</span><span class="tag"></span><span class="tag-name">p</span><span class="tag">></span><span>"; </span></span> </li> <li class="alt"><span>} </span></li> <li><span>} </span></li> <li class="alt"><span>class son extends father{ </span></li> <li><span>function playing(){ </span></li> <li class="alt"><span>//小孩子会很调皮的,当然他也是要吃要睡的生物 </span></li> <li> <span>echo "</span><span class="tag"><span> </span><span class="tag-name">p</span><span class="tag">></span><span>{$this-</span><span class="tag">></span><span>name}正在捣蛋...</span><span class="tag"><span> /p</span><span class="tag">></span><span>"; </span></span></span> </li> <li class="alt"><span>} </span></li> <li><span>} </span></li> <li class="alt"> <span>$</span><span class="attribute">your_father</span><span>=</span><span class="attribute-value">new</span><span> father("老爸"); </span> </li> <li> <span>$your_father-</span><span class="tag">></span><span>go_to_sleeping(); </span> </li> <li class="alt"> <span>$your_father-</span><span class="tag">></span><span>eat(); </span> </li> <li> <span>$</span><span class="attribute">my_son</span><span>=</span><span class="attribute-value">new</span><span> son('宝贝'); </span> </li> <li class="alt"> <span>$my_son-</span><span class="tag">></span><span>go_to_sleeping(); </span> </li> <li> <span>$my_son-</span><span class="tag">></span><span>eat(); </span> </li> <li class="alt"> <span>$my_son-</span><span class="tag">></span><span>playing(); </span> </li> <li> <span class="tag">?></span><span> </span> </li> </ol>
分析: 継承を使用する最初の例では、PHP コンストラクターで説明したコンストラクターと、PHP クラスのカプセル化のキーワードを使用します。正午には寝たくなかったので、これ以上言いたくないのですが、この小さなプログラムについて話しましょう。
クラスの父では、人の名前、その人が何を食べ、何を寝る必要があるかなどの一般的な特徴を定義し、そのサブクラス (子孫) で個人化されたメソッド (結局のところ、人) を定義します。それらの間には違いがあります。コンストラクターを使用して名前を初期化し、もちろんデストラクターを使用してオブジェクトを「破棄」します。ただし、サブクラスにはコンストラクターとデストラクターがないため、サブクラスは親の All メソッドを継承します。それ以外の場合は、メソッドが継承されます。 $my_son->go_to_sleeping(); を次のように呼び出すことはできますか? これは PHP クラスの継承です。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

SublimeText3 中国語版
中国語版、とても使いやすい

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









