繁体   English   中英

PHP - 在函数内定义类

[英]PHP - defining classes inside a function

这是一种不好的做法吗?

喜欢:

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

我会避免它。

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

这就是类加载器的工作方式。 这不一定是不好的做法。

取决于函数的功能以及执行此操作的原因。 使用自动加载可能更合适。

这通常是一种不好的做法,应该避免。 您应该考虑使用自动加载器

如果你有理由我没有看到任何不好的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM