这是不好的做法吗?

喜欢:

function boo(){
  require_once("class.moo.php");
}
...

最佳答案

,这是不好的做法; ,不是。

您可能会得到两个答案,这就是原因:

如果您使用__autoload(或等效代码),请调用:

function someFunc()
{
  $n = new UndefinedClassName();
}

等效于:
function someFunc()
{
  include('path/to/UndefinedClassName.php');
  //may be require_once, include_once, include, or require
  //depending on how autoload is written
  $n = new UndefinedClassName();
}

但是,如果避免使用__autoload,则可以从代码中获得更好的性能。为了维护您的代码,最好将所有includes放在脚本的顶部,就像处理其他语言的import语句一样。
include('path/to/UndefinedClassName.php');
...code...
function someFunc()
{
  $n = new UndefinedClassName();
}

我建议保持一致。如果您在函数中始终调用include,那么应该不会有太多问题,但是我会选择在文件开头或autoloads处导入。

关于PHP-在函数内定义类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4890595/

10-16 16:21