Ну, почему бы тебе просто не проверить? ; -)
Примечание: Не так просто, как вы думаете - прочитайте полный ответ; -)
Вызов функции hello_testing();
без установки переменной:
hello_testing();
Я не получаю вывод - что указывает isset
возвращено false
.
Вызов функции после установки переменной:
$conditional_random = 'blah';
hello_testing();
Я получаю вывод:
foo is inside
Что указывает на то, что global
работает, как и ожидалось, когда переменная установлена - ну, в этом не должно быть никаких сомнений ^^
НО обратите внимание, что isset
вернет false
, если переменная установлена, и null
!
См. справочную страницу isset()
Что означает, что лучшим тестом будет:
function hello_testing() {
global $conditional_random;
var_dump($conditional_random);
}
hello_testing();
И это показывает:
null
No Notice: переменная существует! Даже если null
.
Поскольку я не устанавливал переменную вне функции, это показывает, что global
устанавливает переменную - но она не помещает значение в нее; это означает, что null
, если он еще не установлен вне функции.
Пока:
function hello_testing() {
//global $conditional_random;
var_dump($conditional_random);
}
hello_testing();
Дает:
Notice: Undefined variable: conditional_random
Доказывает, что уведомления включены; -)
И, если бы global не " установил " переменную, предыдущий пример дал бы то же самое уведомление.
И, наконец:
function hello_testing() {
global $conditional_random;
var_dump($conditional_random);
}
$conditional_random = 'glop';
hello_testing();
Дает:
string 'glop' (length=4)
(Чисто для демонстрации моего примера не обманули ^^)