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

wor*_*ser 10 php performance php-internals

我声明了100个函数,但我实际上并没有调用它们中的任何函数.定义了如此多的函数会影响加载时间吗?

PHP在调用之前是否处理这些函数?

小智 11

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

  • 非常重要的是要注意,如果你使用opcache扩展(就像任何专业的PHP部署那样),那么文件只编译一次而不是每次执行.因此,编译函数没有任何开销.唯一的开销是在运行时绑定它们.这对于函数来说不是问题,但可能是类的一个问题(如果在运行时绑定了1000个未使用的类.) (2认同)