PHP在调用之前是否读取了函数?

时间:2016-07-20 07:34:53

标签: php performance php-internals

我声明了100个功能,但我实际上并没有打电话给任何一个。定义了如此多的函数会影响加载时间吗?

PHP会在调用这些函数之前对其进行处理吗?

2 个答案:

答案 0 :(得分:10)

,php解析运行中的所有函数,并检查可能的语法错误(尽管它不会一直执行它们)并将其名称注册为符号。
当你调用任何函数时,php在注册符号表中搜索函数名称中的函数,然后执行该函数 因此,最好只使用您的目的函数,因为它会增加符号表的大小。

答案 1 :(得分:0)

为了清楚起见,即使有数百个未使用的类和函数也不会对程序的性能产生太大影响。有些不同,是的,但不是很多。改进正在运行的代码将产生更大的差异。在完全拥有自己的代码之前,不要担心优化语言机制。性能优化的关键是首先解决最大的问题,而最大的问题很少是由微妙的语言怪癖引起的。

如果你想最大限度地减少加载太多不会被使用的代码的影响,最好的方法是使用PHP的自动加载机制。

这可能意味着您还应该将代码编写为类而不是独立函数,但无论如何这都是一件好事。

使用自动加载器意味着您可以让PHP在需要时完成加载所需代码的工作。如果你没有使用某个特定的类,那么它就不会被加载,但另一方面它会在你需要的时候存在而不必你做include()或类似的事情。

这种设置非常强大,即使您使用的是庞大的框架库,也无需担心加载太多代码。

自动加载对我来说太大了,在这里的答案中有足够的细节解释,但网上有很多资源可以教它。或者,使用现有的框架 - 几乎所有框架都内置了自动加载器系统,因此如果您使用任何类型的现代PHP框架,您应该能够使用它们。