2014-01-25 6 views
-2
$var = "Value 1"; 

function setVar() { 
    global $var; 
    $var = "Value 2"; 
} 

function test($someVar) { 
    echo $someVar; 
} 

test($var); 

Я хочу, чтобы результат теста (setVar()) был «Value 2», но без возврата $ var в setVar(). Это возможно?PHP Переменная область внутри функции

+0

'setVar' ничего не возвращает, поэтому вы ничего не пропускаете в функцию' test'. Если вы хотите напечатать '$ var' в' test', почему бы вам не напечатать его вместо '$ someVar'? –

+0

Если 'setVar' ничего не возвращает, то какое отношение существует для' test'? – deceze

+0

Итак, как бы я написал его так, чтобы setVar возвращал $ var? Вещь в моем «правильном» коде (который слишком сложна для ввода здесь) setVar() возвращает что-то еще, и мне просто нужно значение $ var, доступное вне моей функции setVar, поэтому я могу передать его как параметр для проверки(). Извините за то, что вы так глупы, но я застрял на этом весь день :( –

ответ

0

Не использовать global. Никогда использование global. Вместо этого используйте ссылку:

$var = "Value 1"; 

function setVar(&$x) 
{ 
    $x = "Value 2"; 
} 

function test($y) 
{ 
    echo $y; 
} 

setVar($var); 

test($var); 
Смежные вопросы