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