PHP - 在函数内定义类

Ale*_*lex 9 php oop class function

这是一种不好的做法吗?

喜欢:

function boo(){
  require_once("class.moo.php");
}
...
Run Code Online (Sandbox Code Playgroud)

zzz*_*Bov 9

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

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

如果您使用__autoload(或等效),请致电:

function someFunc()
{
  $n = new UndefinedClassName();
}
Run Code Online (Sandbox Code Playgroud)

相当于:

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();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您避免使用,您将从代码中获得更好的性能__autoload.为了维护您的代码,最好将所有内容放在includes脚本的顶部,就像import使用其他语言的语句一样.

include('path/to/UndefinedClassName.php');
...code...
function someFunc()
{
  $n = new UndefinedClassName();
}
Run Code Online (Sandbox Code Playgroud)

我会建议一致性.如果你一直调用include函数,你不应该有太多的问题,但我会选择文件开头的导入,或者autoloads.


Ree*_*sey 5

我会避免它。

这不是其他开发人员所期望的,因此会降低代码的可维护性。

  • “这不是其他开发人员所期望的”,除非其他开发人员也在做同样的事情...... (3认同)