1

UserController.phpへのajax呼び出しによって、独自の宣言の上にインスタンス化されるUserControllerというクラスがあります。期待どおりに動作します。

<?php
new UserController();

class UserController{
  //constructor
  //methods
}
?>

ここで、すべてのコントローラーにいくつかの共通機能を提供したいと思います。これは、baseControllerを拡張することによって実現しました。

<?php
//include BaseController
new UserController();

class UserController extends BaseController{
  //constructor
  //methods
}
?>

ただし、インスタンス化を試みると、次のメッセージが表示されます。

致命的なエラー:クラス'UserController'がC:\ xampp \ htdocs \ project \ controllers\UserController.phpに見つかりません

インスタンス化を宣言の後に移動するとします。それはすべて再びうまくいきます。

<?php
//include BaseController

class UserController extends BaseController{
  //constructor
  //methods
}

new UserController();
?>

誰かがこれに光を当ててくれませんか?

この場合、UserControllerクラスのインスタンス化を宣言後に行う必要があるのに、別のクラスを拡張しない場合は宣言の前に行うことができるのはなぜですか?

4

1 に答える 1

1

ドキュメントから:

自動読み込みを使用しない限り、クラスを使用する前にクラスを定義する必要があります。クラスが別のクラスを拡張する場合は、子クラス構造の前に親クラスを宣言する必要があります。このルールは、他のクラスとインターフェイスを継承するクラスに適用されます。

ここで参照

オートロードでincludeはありません...だからあなたの問題があります

于 2012-07-25T10:26:28.503 に答える