2010-11-09 135 views
17

是否可以在PHP函数中使用PHP常量?我可以在PHP中的函数中使用常量吗?

// in a different file 
DEFINE ('HOST', 'hostname'); 
DEFINE ('USER', 'username'); 
DEFINE ('PASSWORD', 'password'); 
DEFINE ('NAME', 'dbname'); 

// connecting to database 
function database() 
{ 
    // using 'global' to define what variables to allow 
    global $connection, HOST, USER, PASSWORD, NAME; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 
+0

为什么downvote一个新用户? – Herr 2010-11-09 07:04:13

+0

@Herr新的或旧的,但他需要先提高他的措辞技能。 – 2010-11-09 07:15:29

+12

改善措辞技巧是令人沮丧的东西,完全不同。不要成为巨魔 – Herr 2010-11-09 07:27:49

回答

18

你并不需要声明他们global的功能,PHP将它们识别为全局。

function database() 
{ 
    // using 'global' to define what variables to allow 
    global $dbc; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 

从php.net:

superglobals一样,常量的范围是全球性的。您可以在脚本的任何位置访问常量,而不考虑范围。有关示波器的更多信息,请阅读variable scope的手册部分。

+2

只是upvoted你的答案,但想指出,* PHP认识到他们作为超全球。*应该是* PHP认识到他们作为全球。* – 2013-08-28 18:16:26

+1

10倍我将修复它 – 2013-08-29 04:32:05

3

你至少试过了吗? :)

manual

superglobals一样, 不变的范围是全球性的。您可以在脚本 的任意位置访问 常数,而不考虑范围。

1

是的,但你不需要称他们为“全球”。常量是全局的。如果您得到unexpected T_STRING, expecting T_VARIABLE作为错误,那是因为它不希望在“全局”语句后看到常量引用。

相关问题