質問:
課題:
<code class="php">class whale { function __construct() { // some code here } function myfunc() { // How do I call the "test" function of fish class from here?? } } class fish extends whale { function __construct() { parent::construct(); } function test() { echo "So you managed to call me !!"; } }</code>
上で定義したクラスを考えると、親クラス ("whale") 内から子クラス ("fish") の "test" 関数に効果的にアクセスするにはどうすればよいでしょうか?
答え:
このシナリオでは、PHP の抽象クラスの概念が実行可能なソリューションを提供します。抽象クラスでは、それを継承するクラスが特定の関数またはメソッドを実装する必要があります。
改訂コード:
<code class="php">abstract class whale { function __construct() { // some code here } function myfunc() { $this->test(); } abstract function test(); } class fish extends whale { function __construct() { parent::__construct(); } function test() { echo "So you managed to call me !!"; } } $fish = new fish(); $fish->test(); $fish->myfunc();</code>
説明:
「whale」を抽象クラスとして宣言し、抽象メソッド「test」を含めることで、子クラスに「test」関数を実装するという要件を強制します。これにより、「whale」クラス内の「myfunc」関数が「test」を直接呼び出すことができるようになります。
注: 抽象クラスではオブジェクトのインスタンス化が許可されません。したがって、これらは、子クラスが必要なメソッドを継承して実装するための青写真としてのみ機能します。
以上がPHPで親クラス内の子クラスから関数を呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。