сделайте переменную доступной для всех классов, методов, функций и включает, как $ POST
этот вопрос кажется достаточно простым, но я не могу найти ответа нигде...
в начале моего PHP-скрипта / файла я хочу создать переменную.
$variable = 'this is my variable';
Я хочу, чтобы эта переменная была доступна во всем скрипте, чтобы все классы, методы, функции, включенные скрипты и т. д. можно просто вызвать эту переменную как $ variable.
Class MyClass
{
public function showvariable()
{
echo $variable;
}
}
переменные $_SESSION, $_POST, $_GET ведут себя так. Я могу просто написать метод и использовать $_POST и это сработает. но если я использую $variable, которую я определил в начале своего скрипта, он говорит: "Notice: Undefined variable: variable in ..."Он даже говорит это, когда я пишу функцию, а не метод класса...
Я пытался писать
global $variable = 'this is my variable';
но тогда скрипт не сработал... "HTTP Error 500 (Внутренняя ошибка сервера): при попытке сервера выполнить запрос возникло непредвиденное условие."
как я могу сделать переменная действительно глобально доступна, как $_POST?
зачем мне это надо? Я специально планирую использовать его в качестве маркера форме. В верхней части страницы я создаю маркер формы как $token, в нижней части страницы я сохраняю его в сеансе. Перед обработкой любой формы я проверяю, соответствует ли токен сеанса токену POST... И поскольку у меня часто есть несколько форм на странице (форма входа в верхнюю навигационную систему и форма регистрации в основном корпусе) , я просто хочу сделать это удобным и позвонить $маркер на каждой форме. Иногда мои formelements генерируются классами или функциями, но они не распознают переменную и говорят, что она не определена.
4 ответов
Я нашел его... -.- Я думал, это будет достаточно просто...
Я должен вызвать переменную с помощью
$GLOBALS['variable'];
только что нашел его... в конечном счете... http://php.net/manual/en/reserved.variables.globals.php
редактировать как 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 для доступа к нему в любой области функций:
в верхней части вашего скрипта:
global $var;
$var= "this is my variable";
в свой класс
...
public function showvariable(){
global $var;
echo $var;
}
...
в PHP глобальные переменные должны быть объявлены как таковые в каждой функции, в которой они будут использоваться. См.: руководство PHP, раздел о переменной области
при этом глобальные переменные часто являются плохой идеей, и в большинстве случаев есть способ избежать их использования.