2010-11-26 2 views
0

Как использовать ключевое слово global, чтобы при нажатии кнопки отправки я мог установить глобальное ключевое слово, чтобы работала верхняя часть скрипта?PHP global question

, расположенный поверх сценария.

if(!isset($u)){ 
    echo 'the $u has no value'; 
} else if(isset($u)){ 
    echo 'the $u has a value of yes'; 
} 

, расположенный в нижней части сценария.

if (isset($_POST['submit'])){ 
    global $u; 
    $u = 'yes'; 
} 

ответ

0

Вы должны запустить

if (isset($_POST['submit'])){ 
    global $u; 
    $u = 'yes'; 
} 

перед

if(!isset($u)){ 
    echo 'the $u has no value'; 
} else if(isset($u)){ 
    echo 'the $u has a value of yes'; 
} 

PHP считывает код построчно, так Исеть ($ и) всегда возвращать FALSE до строки $ U = 'да'; запускается.

+0

, но мне нужно это другой путь вокруг и делает, что поражение цели глобальной переменной? – HELP 2010-11-26 10:14:28

1

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

sesssion_start(); 

где-нибудь (обычно в верхней части вашего скрипта). переменные могут быть сохранены и восстановлены, делая

$_SESSION['name'] = $foo;//Store a variable into the session 
$bar = $_SESSION['bar'];//Retrieve a variable from the session 

В вашем случае вы бы хранить у переменной в сессию и получить его после того, как подать.

Есть ли причина, по которой вы не просто передаете это значение через форму?

2

глобальная связана размаху, а не на заказ исполнения

Если обе части кода являются глобальными, т.е. не входят в функции, «глобальная» ключевое слово не имеет никакого эффекта, потому что они находятся в той же области,

в другой ответ правильно указал, ваша проблема в том, порядок выполнения задачи, не проблема сфера