Область глобальной переменной - PullRequest
0 голосов
/ 04 марта 2019

Если я определяю глобальную переменную вне функции, почему код функции не может получить к ней доступ?Определение глобальной переменной состоит в том, что к ней можно получить доступ через код.

1 Ответ

0 голосов
/ 04 марта 2019

Вам нужно либо передать свою переменную в функцию.Вы можете рассматривать это как измерение безопасности.Если какая-либо функция увидит все глобальные переменные по умолчанию, было бы очень просто переопределить что-то в остальных ваших 50000 строках кода.

$myVar = 'asdf';

function doSomething($var){
    echo $var;
}

doSomething($myVar);

Или, если вы действительно не хотите передавать это,Вы можете сделать это:

$myVar = 'asdf';

function doSomething() {

    // tell the function that it should use a global var.
    global $myVar;

    echo $myVar;
}

doSomething();

Есть еще один способ вызвать переменную непосредственно в функции:

  1. определить вашу переменную: $myVar = 'asdf';
  2. вызывайте вашу переменную везде, где хотите, с этим синтаксисом: $GLOBALS['myVar']
...