Могу ли я использовать константы внутри функций в 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;
}
Author: Sebastian Zartner, 2010-11-09

4 answers

Вам не нужно объявлять их в 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 :

Как и суперглобальные, область действия константы является глобальной. Вы можете получить доступ к константам в любом месте вашего скрипта независимо от области действия. Для получения дополнительной информации об области действия прочитайте раздел руководства по область действия переменной.

 19
Author: Haim Evgi, 2014-10-22 06:44:04

Вы хотя бы пробовали это ?:)

Из руководства :

Как и суперглобальные, область действия константы является глобальной. Вы можете получить доступ к константам в любом месте вашего скрипта независимо от сферы применения.

 3
Author: netcoder, 2010-11-09 06:23:14
 2
Author: alex, 2017-05-23 11:46:33

Да, но вам не нужно называть их "глобальными". Константы являются глобальными. Если вы получаете unexpected T_STRING, expecting T_VARIABLE как ошибку, это потому, что он не ожидает увидеть постоянные ссылки после "глобального" оператора.

 1
Author: theazureshadow, 2010-11-09 06:24:28