我可以通过PHP中的变量将DEFINED常量传递给函数吗?

时间:2011-03-02 17:04:54

标签: php variables constants

我有以下代码:

DEFINE('DEFINEDTESTVAR', 'Hello World');

function callit($callVar) {
  echo "The call is ".$callVar;
}


$passthis = 'DEFINEDTESTVAR';
callit($passthis);

我知道我可以做callit(DEFINEDTESTVAR)但这不是我想做的事情。有可能吗?

4 个答案:

答案 0 :(得分:7)

要么传递常数:

$passthis = DEFINEDTESTVAR;

或者通过constant()访问它,这允许你在未定义的情况下测试null(对于未定义的常量,传递常量会导致带有常量名称的字符串):

$passthis = constant('DEFINEDTESTVAR');

答案 1 :(得分:2)

define('DEFINEDTESTVAR', 'Hello World'); // you should use define

function callit($callVar) {
  echo "The call is ".$callVar;
}    

$passthis = DEFINEDTESTVAR; // no need to use quotes
callit($passthis);

答案 2 :(得分:1)

您可以使用constant()从字符串中获取常量值。如果找不到指定的常量,它将返回null。

$passthis = constant('DEFINEDTESTVAR');
callit($passthis);

答案 3 :(得分:0)

<?php 
DEFINE('DEFINEDTESTVAR', 'Hello World');

function callit($callVar) {
  echo "The call is ".$callVar;
}


$passthis = DEFINEDTESTVAR;
callit($passthis);