我有以下代码:
DEFINE('DEFINEDTESTVAR', 'Hello World');
function callit($callVar) {
echo "The call is ".$callVar;
}
$passthis = 'DEFINEDTESTVAR';
callit($passthis);
我知道我可以做callit(DEFINEDTESTVAR)
但这不是我想做的事情。有可能吗?
答案 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);