Как использовать переменные из другого включаемого PHP-файла в функции? - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть PHP-файл, содержащий все переменные, которые я буду использовать. Как я могу использовать все эти переменные в другом файле функции, не объявляя их снова глобальными в этой функции?

Ответы [ 3 ]

5 голосов
/ 08 апреля 2011

Функция не может получить доступ к внешним переменным, не включая их, не объявляя их глобальными и не получая их от глобальных переменных. В прошлом я создал как массив, так и легко читаемые переменные. Затем я ссылаюсь на переменную массива и должен получить доступ к переменной по имени.

2 голосов
/ 08 апреля 2011

Вы должны передать их функции в качестве аргументов.Если это нужно сделать многим, рассмотрите возможность использования объектов вместо просто функций, а затем создайте экземпляры объекта в главном файле.Или, как упоминает Крейг, передайте глобальные переменные в массиве параметров в дополнение к аргументам первичной функции.

1 голос
/ 08 апреля 2011

Вы можете получить доступ ко всем переменным глобальной области видимости с помощью:

$GLOBALS['varname']

Во избежание постоянного использования $ GLOBALS вы можете автоматически «глобализировать» переменные:

Поместите этов вашей функции «импортировать» все переменные:

foreach($GLOBALS as $key=>$val){
    if(!isSuperGlobal($key))
        global $$key;
}

и поместить эту справочную функцию где-нибудь еще вне вашей функции

function isSuperGlobal($name){
    switch($name){
        case 'GLOBALS':
        case '_SERVER':
        case '_GET':
        case '_POST':
        case '_FILES':
        case '_COOKIE':
        case '_SESSION':
        case '_REQUEST':
        case '_ENV':        return true;    break;
        default:            return false;   break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...