У меня есть отдельный файл, где я включаю переменные с заданным значением. Как я могу сделать эти переменные глобальными?
Ex. У меня есть значение $myval
в файле values.php
. В index.php
я вызываю функцию, которая нуждается в значении $myval
.
Если я добавлю include(values.php);
в начале файла index.php он теряет область внутри функции. Я буду вызывать одну и ту же переменную в нескольких функциях в файле index.php.
Внутри функции используйте ключевое слово global
или получите доступ к переменной из массива $GLOBALS[]
:
function myfunc() { global $myvar; }
Или, для лучшей читаемости: используйте $GLOBALS[]
. Это дает понять, что вы обращаетесь к чему-то в глобальном масштабе.
function myfunc() { echo $GLOBALS['myvar']; }
Наконец, хотя,
По возможности избегайте использования глобальной переменной для начала и передавайте ее в качестве параметра функции:
function myfunc($myvar) { echo $myvar . " (in a function)"; } $myvar = "I'm global!"; myfunc($myvar); // I'm global! (in a function)
Используйте внутри своей функции:
global $myval;
PHP – переменная область
Использование ключевого слова global в начале вашей функции приведет эти переменные в область видимости. Так, например,
$outside_variable = "foo"; function my_function() { global $outside_variable; echo $outside_variable; }
Есть ли причина, по которой вы не можете передать переменную в свою функцию?
myFunction($myVariable) { //DO SOMETHING }
Это гораздо лучшая идея – передавать переменные, а не использовать глобальные переменные.
То же, что если бы вы объявили переменную в том же файле.
function doSomething($arg1, $arg2) { global $var1, $var2; // do stuff here }