PHP基本(noobish)概念问题:常量与函数

时间:2011-05-21 09:52:49

标签: php performance constants

我有一个全局“functions.php”文件,其中包含我的网站中使用的函数。

在性能,效率等方面 - 最好是直接调用其中一个函数还是将它们定义为常量并调用常量? (或者它是否重要?)

<?php echo site_root(); ?>

VS

<?php echo SITEROOT; ?>

由于

2 个答案:

答案 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
}

只有在代码始终需要时才能使用常量。如果你的代码只在这里或那里使用它,那么不要使用它们作为代码来定义它们会降低你的主代码的速度。