Могу ли я использовать константы внутри функций в 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;
}
Ответы
Ответ 1
Вам не нужно объявлять их в 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:
Как суперглобалы, объем константы глобальный. Вы можете получить доступ к константам в любом месте вашего script без учета объема. Для получения дополнительной информации о сфере видимости прочитайте раздел руководства область видимости переменных.
Ответ 2
Вы хотя бы пробовали?:)
Из руководства :
Как суперглобалы, объем константа глобальна. Вы можете получить доступ константы в любом месте вашего scriptбез учета объема.
Ответ 3
define()
создает глобальные константы.
Есть гораздо лучшие способы хранения элементов конфигурации.
Ответ 4
Да, но вам не нужно называть их "глобальными". Константы являются глобальными. Если вы получите unexpected T_STRING, expecting T_VARIABLE
как ошибку, потому что он не ожидает увидеть ссылки констант после "глобального" оператора.