Этот вопрос кажется достаточно простым, но я не могу найти ответ нигде …
В начале моего 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», раздел «Область переменных»
При этом глобальные переменные часто являются плохой идеей, и в большинстве случаев есть способ избежать их использования.