Могу ли я включить класс в метод? - PullRequest
6 голосов
/ 11 января 2010

Только для случая, когда автозагрузка не будет работать, интересно, нормально ли с PHP включать класс внутри метода?

Пример:

public method doSomething() {
   include ('MyClass.php');
   $foo = MyClass::doAnotherThing();
}

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Да, вы определенно можете это сделать. Фактически, это именно то, что делает автозагрузка в любом случае, так как __autoload() сама по себе является функцией, и вы обычно используете ее для поиска файла класса для загрузки.

Однако, если вы вручную включите такие файлы классов, вы определенно захотите использовать require_once() вместо include() или require(), в противном случае вы получите повторное объявление класса.

3 голосов
/ 11 января 2010

Да, это отлично работает, и класс будет доступен в глобальной области видимости. Если файл содержит код, отличный от класса, этот код будет выполнен так, как если бы он был внутри функции.

1 голос
/ 11 января 2010

Ну, в этом случае вы, вероятно, захотите сделать require или require_once и, возможно, проверить, если class_exists, но да, вы можете сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...