PHP オブジェクト指向の抽象メソッドと抽象クラス __call オブジェクトの複製に関する詳細なチュートリアル_PHP チュートリアル
この記事では、PHP でのオブジェクト指向の抽象メソッドと抽象クラス __call clone オブジェクトの使用法を紹介します。その方法を知りたい人は、それを学ぶことができます。
抽象メソッドと抽象クラス
OOP 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは継承を容易にするために導入されています。その使用法を説明する前に、まず抽象クラスと抽象メソッドの定義を見てみましょう。
抽象メソッドとは何ですか?メソッド本体を持たずにクラス内で定義するメソッドは、いわゆるメソッド本体が存在しないことを意味し、メソッドの宣言時に中括弧やその中の内容が存在せず、代わりに括弧が直後に追加されます。宣言するときはメソッド名。数値の末尾に、抽象メソッドを宣言するときはキーワード「abstract」を追加します。例:
コードは次のとおりです | コードをコピー |
抽象関数 fun1(); |
上記の例は、「abstract」によってメソッド本体が変更されていない抽象メソッド「fun1()」と「fun2()」です。抽象メソッドの後にセミコロンがあることを忘れないでください。クラス内のメソッドが抽象メソッドである限り、そのクラスは抽象クラスとして定義する必要があり、また、抽象クラス内にメソッドとメンバーを含めることができ、その抽象クラスも「abstract」キーワードで変更する必要があります。メソッドが抽象メソッドの場合、クラスは抽象クラスとして宣言され、「abstract」で装飾される必要があります。例:
コードは次のとおりです | コードをコピー |
抽象クラスのデモ 抽象関数 fun1(); |
上記の例では、抽象クラス「Demo」が定義され、「abstract」で変更されています。このクラスでは、メンバー属性「$test」、2 つの抽象メソッド「fun1」および「fun2」、および非 Abstract が定義されています。メソッド fun3(); では、抽象クラスをどのように使用するのでしょうか?最も重要な点は、抽象クラスはインスタンス オブジェクトを生成できないため、直接使用できないことです。クラスを介してインスタンス化されたオブジェクトを使用しているため、抽象クラスはインスタンス オブジェクトを生成できません。抽象クラスを宣言するのはどうですか?抽象メソッドをサブクラスのオーバーロードのテンプレートとして使用します。この仕様は、サブクラスが抽象クラスを継承した後、サブクラスのニーズに応じて実装されることを要求します。サブクラスは親クラスのすべての抽象メソッドを実装する必要があります。そうでない場合、サブクラスにまだ抽象メソッドが存在する場合、サブクラスは依然として抽象クラスであり、抽象クラスから継承する必要があるのはなぜでしょうか。いくつかの関数を実装したい場合は、抽象クラスから継承する必要がある場合があります。そうしないと、抽象クラスを継承する場合、そのクラスに抽象メソッドを実装する必要があります。
コードをコピー | |||||||||
抽象クラスのデモ
{
抽象関数 fun2(); |
コードは次のとおりです | コードをコピー |
$demo=新しいデモ(); クラステストはデモを拡張します 関数 fun2() |
//親クラスのすべての抽象メソッドが実装されているため、サブクラスはオブジェクトをインスタンス化できます
コードは次のとおりです | コードをコピー |
$test=新しいテスト(); |
__call は呼び出しエラーを処理します
プログラム開発において、オブジェクトを使用してオブジェクトの内部メソッドを呼び出すときに、呼び出されたメソッドが存在しない場合、プログラムはエラーとなり、プログラムは終了して実行を続行できません。したがって、プログラムがオブジェクト内に存在しないメソッドを呼び出す場合、呼び出されたメソッドと使用されたパラメータが存在しないことを示すプロンプトが表示されますが、この時点ではプログラムは実行を続行することができます。存在しないメソッドを呼び出すと自動的に呼び出されます。
コードは次のとおりです | コードをコピー |
//これはテストクラスであり、属性やメソッドはありません //Testクラスのオブジェクトを生成する //オブジェクトに存在しないメソッドを呼び出す //プログラムはここでは実行されません |
上記の例では次のエラーが発生し、プログラムは実行を続行できません。
致命的なエラー: 未定義メソッド Test::demo() の呼び出し
コードをコピー | |||||||||
//これはテストクラスであり、属性やメソッドはありません
クラステスト
|
コードをコピー | |
クラスの人
{
関数 __construct($name="", $sex="", $age="")
関数say()
//「clone」を使用して、p1 オブジェクトと同じプロパティとメソッドを持つ新しいオブジェクト p2 を複製します。
|
コードは次のとおりです | コードをコピー |
クラスの人 //属性名 $name、性別 $sex、年齢 $age に値を割り当てるコンストラクター パラメーターを定義します //この人は自分の属性を伝える方法で話すことができます //オブジェクトのクローン作成時に自動的に呼び出されるメソッド。クローン作成後に元のオブジェクトの内容を変更したい場合は、__clone()で元の属性とメソッドを書き換える必要があります $p1=新しい人("張三"、"男性"、20歳); $p2=$p1 のクローン; 上記の例の出力: |
私の名前:Zhang San 性別:男性 私の年齢:20歳
私の名前は:偽の張三です 性別:男性 年齢:30歳

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
