2011-03-02 142 views
1

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

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

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


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

我知道我可以做callit(DEFINEDTESTVAR),但是这不是我所期待的事情。可能吗?

+3

如果这不是你想要做的事,什么时候做*你想做什么?您未经解释拒绝的方法是标题中问题的解决方案。 – 2011-03-02 17:07:18

+0

这是我写PHP 5年来第一次见到用define()写成的大写字母。 – BoltClock 2011-03-02 17:09:01

回答

7

无论是通过不断本身:它允许您测试空的情况下,它没有定义(未定义的常量,传递常量

$passthis = DEFINEDTESTVAR; 

或者通过constant()访问它从字面上导致字符串常量名):

$passthis = constant('DEFINEDTESTVAR'); 
+0

作品。谢啦。 – 2011-03-02 17:19:59

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); 
+1

实际上,它是“定义”还是“DeFiNe”或“dEFINE”或“DEFINE”并不重要。我只是指出用大写字母写非常规。 – BoltClock 2011-03-02 17:11:46

+0

@BoltClock:谢谢。 – Gaurav 2011-03-02 17:13:09

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

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


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

您可以从一个字符串获得一个恒定的值用constant()。如果未找到指定的常量,它将返回null。

$passthis = constant('DEFINEDTESTVAR'); 
callit($passthis); 
相关问题