我想分组几种方法。这些方法不包含任何类数据,因此是静态的。 PHP有2个选项可以做到这一点;将它们放在命名空间或类中。例如:
// option 1
namespace Renderer;
function render()
{
}
// invoke with 'Renderer\render()'
// option 2
class Renderer
{
static function render()
{
}
}
// invoke with 'Renderer::render()'
这两个性能选项有什么区别吗?我的意思是,我的想法是类声明使用RAM中的静态方法创建一个对象。因此,使用比命名空间稍多的内存。或者那不重要吗?
答案 0 :(得分:3)
类声明使用静态方法创建一个对象 RAM
除非进行实例化,否则不会创建对象,即$myObject = new MyClass();
解析后,函数将进入符号表,无论它们是否是类定义的一部分。
这两个性能选项之间是否存在差异
它可以忽略不计,不应该是您的主要关注点。寻找更好的组织/可读性。
将方法封装在类定义中可以提供更好的组织。 它还允许autoloaders使用它。
答案 1 :(得分:1)
"或者那不重要吗?"不,它确实没有。
以不同的方式构建代码,以便在像这样的微小内存影响中更有效率,完全集中在完全错误的问题上。
PHP是一种非常高级的编程语言,其大部分功能是为了方便程序员而实现的,因为它们允许您编写富有表现力,结构化,可维护的代码。有效地使用这些功能是你应该考虑的,例如:
如果由于某种原因,你确实需要担心速度或内存的微优化问题,那么你不应该用高级的,虚拟机执行的语言来编写PHP,而应该让它更接近控制这样的事情,例如C.对于大多数人来说,高级编程构造的便利性大大超过了对现代硬件执行它们的微小影响。