Его, потому что функция имеет только локальную область видимости. Он может видеть только переменные, определенные внутри самой функции. Любая переменная, определенная вне функции, может быть импортирована только в эту функцию или использована глобально.
Есть несколько способов сделать это, один из которых является глобальным ключевым словом:
$someVariable = 'someValue';
function getText(){
global $someVariable;
echo $someVariable;
return;
}
getText();
Однако, я советовал бы против такого подхода. Что произойдет, если вы измените $someVariable
на другое имя? Вам нужно будет перейти к каждой функции, в которую вы ее ввели, и изменить ее. Не очень динамично.
Другой подход был бы это:
$someVariable = 'someValue';
function getText($paramater1){
return $parameter1;
}
echo getText($someVariable);
Это более логично, и организовано. Передача переменной в качестве аргумента функции лучше, чем использование ключевого слова global в каждой функции.
В качестве альтернативы переменные POST, REQUEST, SESSION и COOKIE являются суперглобальными. Это означает, что они могут быть использованы в функции без необходимости неявно импортировать их:
// Assume the value of $_POST['someText'] is someValue
function getText(){
$someText = $_POST['someText'];
return $someText;
}
echo getText(); // Outputs someValue
'глобального $ opid,' в НАЧАЛЕ функции – k102