сделать переменную доступной для всех классов, методов, функций и включает в себя, как $ _POST

Этот вопрос кажется достаточно простым, но я не могу найти ответ нигде …

В начале моего php-скрипта / файла я хочу создать переменную.

$variable = 'this is my variable'; 

Я хочу, чтобы эта переменная была доступна в пределах всего скрипта, так что все классы, методы, функции, включая скрипты и т. Д., Могут просто вызвать эту переменную как переменную $.

 Class MyClass { public function showvariable() { echo $variable; } } 

Переменные $ _SESSION, $ _POST, $ _GET ведут себя так. Я могу просто написать метод и использовать $ _POST, и он будет работать. но если я использую переменную $, которую я определил в начале моего скрипта, он говорит «Уведомление: неопределенная переменная: переменная в …» Она даже говорит об этом, когда я пишу функцию, а не метод класса. ,

Я попытался написать

 global $variable = 'this is my variable'; 

Но тогда скрипт не загрузится … »Ошибка HTTP 500 (Внутренняя ошибка сервера): неожиданное условие возникло, когда сервер пытался выполнить запрос».

Как я могу сделать переменную по-настоящему глобально доступной, например $ _POST?

Зачем мне это нужно? Я специально планирую использовать его как токен формы. В верхней части страницы я генерирую токен формы в виде $ токена, в нижней части страницы храня его в сеансе. Прежде чем обращаться с какой-либо формой, я проверяю, совпадает ли токен SESSION с токеном POST … И поскольку у меня часто есть несколько форм на странице (форма входа в верхнюю навигацию и форма регистрации в основном корпусе), я просто хочу сделать это удобным и call $ token для каждой формы. Иногда мои формы формируются классами или функциями, но они не распознают переменную и говорят, что она не определена.

Я нашел это … -Я думал, что будет достаточно легко …

Мне нужно вызвать переменную, используя

 $GLOBALS['variable']; 

Просто нашел это … наконец … http://php.net/manual/en/reserved.variables.globals.php

EDIT, как через 8 месяцев или около того:

Я только что узнал о КОНСТАНТАХ!

 define('name', 'value'); 

Они просто не могут быть переназначены … Думаю, я тоже мог бы это использовать! http://www.php.net/manual/en/language.constants.php

Просто определите переменную вне любого класса или функции. Затем используйте ключевое слово global внутри любого класса или функции.

 <?php // start of code $my_var = 'Hellow Orld'; function myfunc() { global $my_var; echo $my_var; // echoes 'Hellow Orld'; } function myOtherFunc() { var $my_var; echo $my_var; // echoes nothing, because $my_var is an undefined local variable. } class myClass { public function myFunc() { global $my_var; echo $my_var; // echoes 'Hellow Orld'; } public function myOtherFunc() { var $my_var; echo $my_var; // echoes nothing. } } myFunc(); // "Hellow Orld" myOtherFunc(); // no output myClass->myFunc(); // "Hellow Orld" myClass->myOtherFunc(); // no output // end of file ?> 

вам нужно объявить глобальным доступ к нему в любой области действия:

в верхней части вашего скрипта:

 global $var; $var= "this is my variable"; 

в вашем классе

 ... public function showvariable(){ global $var; echo $var; } ... 

В PHP глобальные переменные должны быть объявлены как таковые в каждой функции, в которой они будут использоваться. См. Раздел « Руководство по PHP», раздел «Область переменных»

При этом глобальные переменные часто являются плохой идеей, и в большинстве случаев есть способ избежать их использования.