我有一个全局“functions.php”文件,其中包含我的网站中使用的函数。
在性能,效率等方面 - 最好是直接调用其中一个函数还是将它们定义为常量并调用常量? (或者它是否重要?)
即
<?php echo site_root(); ?>
VS
<?php echo SITEROOT; ?>
由于
答案 0 :(得分:8)
这取决于site_root()
究竟做了什么。
如果它只是从数组中读取并返回一个字符串非常简单,那么使用该函数还是常量并不重要。使用最适合你的方法。
如果函数执行像数据库查找那样昂贵的事情,那么只执行一次调用,将结果存储在常量中并在代码中使用它确实是明智的。
答案 1 :(得分:2)
Adam,另一个选择是使用静态变量作为函数内的缓存:
function site_root() {
static $result = null;
if (!is_null($result)) {
return $result;
}
// code for defining and returning result only once
}
只有在代码始终需要时才能使用常量。如果你的代码只在这里或那里使用它,那么不要使用它们作为代码来定义它们会降低你的主代码的速度。