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

时间:2010-11-09 06:18:53

标签: php constants

是否可以在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;
}

4 个答案:

答案 0 :(得分:21)

您不需要在函数的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:

  

与超全球一样,常数的范围是全局的。您可以在脚本中的任何位置访问常量,而不考虑范围。有关范围的更多信息,请阅读variable scope上的手册部分。

答案 1 :(得分:3)

你至少尝试过吗? :)

来自manual

  像超级全球一样,范围是一个   常数是全球的。你可以访问   脚本中任何地方的常量   不考虑范围。

答案 2 :(得分:2)

答案 3 :(得分:1)

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