我正在尝试定义一个常量,但如果已经定义了,我不想重新定义它.这是一个C样本:
#ifndef BASEPATH
#define BASEPATH /mnt/www
#endif
Run Code Online (Sandbox Code Playgroud)
在PHP中最优雅的方法是什么?
rid*_*rid 25
if (!defined('BASEPATH')) {
define('BASEPATH', '/mnt/www');
}
Run Code Online (Sandbox Code Playgroud)
if(!defined('BASEPATH')) {
define('BASEPATH', '/mnt/www');
}
Run Code Online (Sandbox Code Playgroud)
http://us3.php.net/manual/en/function.defined.php
在C中,#ifdef通常涉及根据是否存在定义来编写/启用/禁用自定义代码.虽然OP没有寻找随后的答案,但搜索引擎用户可能有兴趣获得扩展答案.(这个问题帮助RTM找到了答案.)
如果有一个包含多次的.php文件,只有当某个函数尚未由同一文件的先前包含声明时,才可以方便地声明该函数.在这种情况下,方便性是将紧密相关的代码保存在同一个文件中,而不必将其放在单独的include_once
.php文件中,并且不必要地分离通常不会在其他上下文(文件)中重复使用的代码.
由于多次重新声明函数似乎很浪费/不合适,事实证明PHP中的#ifdef类似的构造是可能的:
if (! function_exists('myfunc'))
{
function myfunc(...)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
在哪里...
表示你的填空.
另请参见:function_exists(PHP 4,PHP 5)(带注释).