PHP如何使用常量(定义)

时间:2010-07-29 19:46:00

标签: php constants

想象一下,我在PHP中有这个常量:

define('APP_PATH', str_replace('//', '/', str_replace('\\', '/', dirname(__FILE__) . '/')));

当我在我的应用程序中使用APP_PATH时,PHP每次都执行代码(dirnamestr_replace上的两个__FILE__)或PHP执行代码一次并将结果存储在APP_PATH中?我希望我足够清楚:)

此问题适用于PHP 5.1.0 +。

4 个答案:

答案 0 :(得分:7)

应该在定义时进行一次。

<强>已更新 有关文档:define() - constants

来自文档:

  

常量是简单值的标识符(名称)。顾名思义,该值在脚本执行期间不会改变(魔术常量除外,它们实际上不是常量)。默认情况下,常量区分大小写。按照惯例,常量标识符总是大写的。

如果你想了解有关常量的更多信息并继续阅读文档,可以很好地解释它,并且可能有一些用法示例。

答案 1 :(得分:2)

如果你想要一个变量而不是一个函数,你可以使它成为一个匿名函数

$APP_PATH=function(){ return str_replace('//', '/', str_replace('\\', '/', dirname(__FILE__) . '/') }

$APP_PATH=function($file){ return str_replace('//', '/', str_replace('\\', '/', dirname($file) . '/') }

你可以用$ APP_PATH [无变量]或$ APP_PATH( FILE )调用 取决于你想做什么

答案 2 :(得分:1)

它执行一次并将结果存储在APP_PATH中。从那时起,APP_PATH是一个标量值。它不像是计算/函数或任何东西的句柄。

答案 3 :(得分:1)

define时刻,Tt作为结果存储在单个请求中。因此'恒定'。下一个请求/脚本调用将再次运行代码,因此在请求之间它可能不一致。