拡張クラスのメインクラスのメソッドを使用し、コンストラクターループを回避する方法

モスタファエルナガー
class a
{
    function __construct()
    {
        $x = new b();
        $x->myFunction();
    }
}
class b extends a
{
    public function myFunction()
    {
        echo 'Here is myFunction';
    }
}
$a = new a();

ここで、クラスaからクラスbの関数myFunctionにアクセスし、無限ループを回避する方法を知りたいと思います。

ダレン

コメントで述べられているように、あなたがしたいのは親クラスを抽象化することですしたがって、親から子クラスを呼び出すことができます。

コメントも示唆しているように、この質問/回答には、以下に示すように、タスクを達成する方法のさまざまな例があります。

abstract class a {

    function __construct() {
        $this->myFunction();
    }
}

class b extends a {

    function myFunction() {
         echo 'im from class b, sweet.';
    }

}

例/デモ


警告/注意

  • 親()クラスをインスタンス化することはできませんabstract

抽象として定義されたクラスはインスタンス化されない可能性がありますソース


また...

これは、あなたがやろうとしていることをどのように呼び出し/実行すべきかということでは決してありません。これを行うことで達成しようとしているタスクを教えていただければ、さらにサポートさせていただきます。そうしないと、「回避策」のためにのみ機能することを意図していないコードを常に作成することになります

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スーパークラスのメソッドをカスタムコンテンツで拡張する方法

分類Dev

ES6クラスインスタンスのプロパティとメソッドを使用してオブジェクトを拡張する方法

分類Dev

コンストラクター内のメソッドでItclオブジェクトを拡張する

分類Dev

クラスを拡張し、インターフェースからのメソッドをオーバーライドする方法は?

分類Dev

オブジェクトインスタンスでコンストラクタのプライベートメソッドを使用する方法

分類Dev

イベントリスナーにコンストラクタのメソッドを使用する方法

分類Dev

Java。クラスのメソッドをプライベートコンストラクターでオーバーライドする方法

分類Dev

Swiftのプロトコル拡張からインスタンスメソッドをオーバーライドする方法は?

分類Dev

1つのメソッドをオーバーライドして抽象クラスを拡張するためのJavaのベストプラクティス

分類Dev

java、メインクラスのコンストラクターでクラスを拡張すると、パラメーターがあります

分類Dev

スーパークラスとサブクラスを使用したSwiftプロトコル拡張メソッドのディスパッチ

分類Dev

別のクラスを拡張するコントローラーのメソッドでSpring Securityアノテーションを使用する

分類Dev

クラスのメソッドパラメータでテンプレートを使用する方法

分類Dev

TypeScriptクラスを拡張する際のメソッドチェーン

分類Dev

静的コンストラクターと拡張メソッド

分類Dev

サブクラスがベースクラスコンストラクターを呼び出し、サブクラスArduino C ++でベースクラスのインスタンスメソッドを使用する

分類Dev

私のクラスでインターフェースメソッドを回避する方法

分類Dev

抽象メソッドで使用されるパラメーターのクラスを拡張する場合は、メソッドのパラメーターのクラスをオーバーライドします

分類Dev

プライベートコンストラクターを持ち、コンパニオンオブジェクト内でメソッドを使用してクラスをインスタンス化することの利点は何ですか?

分類Dev

共通のcreateValueメソッドを定義するパラメーターを持つケースクラスのシェイプレスのジェネリックデフォルトインスタンスを使用してビルドします

分類Dev

メソッドをコンストラクターのパラメーターにする方法

分類Dev

C ++静的ファクトリメソッドとコンストラクタ:コピーを回避する方法は?

分類Dev

コンストラクターで独自のスタイルを使用してRadioButtonを拡張する

分類Dev

コンストラクター委任でSFINAEを使用して、クラステンプレートのコンストラクターを介してメンバーを初期化するためのメソッドを一般的に適用する

分類Dev

デフォルトパラメータを指定して基本クラスメソッドを拡張する

分類Dev

C ++拡張クラス一部のメソッドをプライベートに強制する

分類Dev

Javaのメソッド内でクラスのインスタンスを作成するスコープ

分類Dev

コンストラクターなしで別のクラスからメソッドを呼び出す方法

分類Dev

コンストラクターなしで別のクラスからメソッドを呼び出す方法

Related 関連記事

  1. 1

    スーパークラスのメソッドをカスタムコンテンツで拡張する方法

  2. 2

    ES6クラスインスタンスのプロパティとメソッドを使用してオブジェクトを拡張する方法

  3. 3

    コンストラクター内のメソッドでItclオブジェクトを拡張する

  4. 4

    クラスを拡張し、インターフェースからのメソッドをオーバーライドする方法は?

  5. 5

    オブジェクトインスタンスでコンストラクタのプライベートメソッドを使用する方法

  6. 6

    イベントリスナーにコンストラクタのメソッドを使用する方法

  7. 7

    Java。クラスのメソッドをプライベートコンストラクターでオーバーライドする方法

  8. 8

    Swiftのプロトコル拡張からインスタンスメソッドをオーバーライドする方法は?

  9. 9

    1つのメソッドをオーバーライドして抽象クラスを拡張するためのJavaのベストプラクティス

  10. 10

    java、メインクラスのコンストラクターでクラスを拡張すると、パラメーターがあります

  11. 11

    スーパークラスとサブクラスを使用したSwiftプロトコル拡張メソッドのディスパッチ

  12. 12

    別のクラスを拡張するコントローラーのメソッドでSpring Securityアノテーションを使用する

  13. 13

    クラスのメソッドパラメータでテンプレートを使用する方法

  14. 14

    TypeScriptクラスを拡張する際のメソッドチェーン

  15. 15

    静的コンストラクターと拡張メソッド

  16. 16

    サブクラスがベースクラスコンストラクターを呼び出し、サブクラスArduino C ++でベースクラスのインスタンスメソッドを使用する

  17. 17

    私のクラスでインターフェースメソッドを回避する方法

  18. 18

    抽象メソッドで使用されるパラメーターのクラスを拡張する場合は、メソッドのパラメーターのクラスをオーバーライドします

  19. 19

    プライベートコンストラクターを持ち、コンパニオンオブジェクト内でメソッドを使用してクラスをインスタンス化することの利点は何ですか?

  20. 20

    共通のcreateValueメソッドを定義するパラメーターを持つケースクラスのシェイプレスのジェネリックデフォルトインスタンスを使用してビルドします

  21. 21

    メソッドをコンストラクターのパラメーターにする方法

  22. 22

    C ++静的ファクトリメソッドとコンストラクタ:コピーを回避する方法は?

  23. 23

    コンストラクターで独自のスタイルを使用してRadioButtonを拡張する

  24. 24

    コンストラクター委任でSFINAEを使用して、クラステンプレートのコンストラクターを介してメンバーを初期化するためのメソッドを一般的に適用する

  25. 25

    デフォルトパラメータを指定して基本クラスメソッドを拡張する

  26. 26

    C ++拡張クラス一部のメソッドをプライベートに強制する

  27. 27

    Javaのメソッド内でクラスのインスタンスを作成するスコープ

  28. 28

    コンストラクターなしで別のクラスからメソッドを呼び出す方法

  29. 29

    コンストラクターなしで別のクラスからメソッドを呼び出す方法

ホットタグ

アーカイブ