0

我有两节课:

class Init {
     public function test() {
          echo 1;
     }

     public static function loadSecond() {
          // Load the class
     }
}

class Second extends Init {
     public function test2() {
          echo 2;
     }
}

我只需要按请求加载Second类。例如:

$init = new Init();
$init->test();

$second = $init::loadSecond();
$second->test2();
4

3 回答 3

1

替换// Load the class

return new Second()

您只需要创建一个新对象。(我不知道你为什么需要这样,但这应该适合你的目的。

于 2013-06-01T08:57:46.037 回答
0

我不确定你需要做什么。如果您打算在需要时自动包含一个类:

正如 Marcin Orlowski 所提到的,您需要的是使用 PHP 的自动加载功能。

基本上它应该看起来像:

function __autoload ($name)
{
    include "/path/to/my/includes/" . $name . "inc.php";
}

如果您的意思是从另一个类创建一个对象,您可能应该这样做

class Init {
     public function test() {
          echo 1;
     }

     public static function loadSecond() {
          return new Second;
     }
}

class Second extends Init {
     public function test2() {
          echo 2;
     }
}
于 2013-06-01T08:52:20.670 回答
-1

您需要的是实现类自动加载功能。它基本上由 PHP 支持,因此请遵循文档: http: //php.net/manual/pl/language.oop5.autoload.php

于 2013-06-01T08:30:14.783 回答