我正在使用一个名为 fuelphp 的 PHP 框架,并且我的这个页面是一个 HTML 文件,所以我无法在其中使用 PHP。我有另一个文件,其中有一个顶部栏,我的 HTML 文件将通过 AJAX 调用该文件。
如何检查 PHP 中是否存在常量?
我想检查 Fuelphp 框架文件位置。
这些是我需要检查的常量(实际上,我只需要检查其中之一):
define('DOCROOT', __DIR__.DIRECTORY_SEPARATOR);
define('APPPATH', realpath(__DIR__.'/fuel/app/').DIRECTORY_SEPARATOR);
define('PKGPATH', realpath(__DIR__.'/fuel/packages/').DIRECTORY_SEPARATOR);
define('COREPATH', realpath(__DIR__.'/fuel/core/').DIRECTORY_SEPARATOR);
require APPPATH.'bootstrap.php';
defined('CONSTANT')
功能检查。
手册中的示例:
<?php /* Note the use of quotes, this is important. This example is checking * if the string 'TEST' is the name of a constant named TEST */ if (defined('TEST')) { echo TEST; } ?>
这是一种更酷、更简洁的方法:
defined('CONSTANT') or define('CONSTANT', 'SomeDefaultValue');
信用:neville dot tk 的丹尼尔 https://www.php.net/manual/en/function.define.php#84439
使用
defined
,你必须做这样的事情:
if (defined("CONST_NAME"))
$value = CONST_NAME;
这可以工作,但是您可能会在代码编辑器(在我的例子中是带有 PHP Inteliphense 扩展的 Visual Studio Code)中收到第二行的恼人的错误消息,因为它找不到
CONST_NAME
。
另一种选择是使用常量函数。它接受一个字符串作为常量名称,如果常量未定义则返回 null:
$value = constant("CONST_NAME");
if ($value != null)
{
// Use the value ...
}
由于您将常量名称作为字符串传递,因此它不会在代码编辑器上生成错误。