我可以通过PHP中的变量将DEFINED常量传递给函数吗?
问题描述:
我有以下代码:我可以通过PHP中的变量将DEFINED常量传递给函数吗?
DEFINE('DEFINEDTESTVAR', 'Hello World');
function callit($callVar) {
echo "The call is ".$callVar;
}
$passthis = 'DEFINEDTESTVAR';
callit($passthis);
我知道我可以做callit(DEFINEDTESTVAR)
,但是这不是我所期待的事情。可能吗?
答
无论是通过不断本身:它允许您测试空的情况下,它没有定义(未定义的常量,传递常量
$passthis = DEFINEDTESTVAR;
或者通过constant()
访问它从字面上导致字符串常量名):
$passthis = constant('DEFINEDTESTVAR');
+0
作品。谢啦。 – 2011-03-02 17:19:59
答
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);
答
<?php
DEFINE('DEFINEDTESTVAR', 'Hello World');
function callit($callVar) {
echo "The call is ".$callVar;
}
$passthis = DEFINEDTESTVAR;
callit($passthis);
答
您可以从一个字符串获得一个恒定的值用constant()。如果未找到指定的常量,它将返回null。
$passthis = constant('DEFINEDTESTVAR');
callit($passthis);
如果这不是你想要做的事,什么时候做*你想做什么?您未经解释拒绝的方法是标题中问题的解决方案。 – 2011-03-02 17:07:18
这是我写PHP 5年来第一次见到用define()写成的大写字母。 – BoltClock 2011-03-02 17:09:01