PHP不是这样优化的吗?它是自上而下的解释语言吗?

Does PHP not optimize in this way? Is it top-down interpreted language?

我想弄清楚为什么我的网页加载时间这么长。我有一个页面,其中包含对 get_template_directory_uri() 的 30 次调用,并且该函数的实现调用了数据库,但是该函数返回的值对于我的整个页面生成都是相同的。因此我可能应该做类似

的事情
$tduri = get_template_directory_uri();

并根据需要使用 $tduri,至少作为一种好的做法,但这是否完全必要,或者 get_template_directory_uri() 的值是否已被缓存?

PHP 本身不缓存函数的 return 值。在您的情况下,该函数正在调用外部数据库,那么 PHP 怎么知道每次调用该函数时结果是相同还是不同?

还要考虑到对外部系统的任何调用很可能比在 PHP 脚本中存储变量要慢。

所以是的,当然,将 return 值缓存在合适的地方,并始终测试它是否有明显的改进,有时结果可能会令人惊讶。分析 PHP 有很多好方法,microtime 非常适合临时测试,无需额外设置。搜索 'PHP profiling' 以获得更强大的工具。