2013-01-08 5 views
0
<?php 
echo test(); 
$a = "123"; 

function test(){ 
global $b; 
b =$a; 
return $b; 
} 
?> 

Я хочу, чтобы получить значение из другой формы, поэтому настройки I функции, но почему не могу показать значение в тесте()путы переменных в функцию

+0

И njk, и я предоставили вам правильные решения ниже. Пожалуйста, выберите один ответ, спасибо. – James

+0

@JamesKirby - Имейте терпение. Дайте время, чтобы выяснить, отвечают ли они на вопросы, проверяют их и определяют, действительно ли они отвечают на вопрос. Также обратите внимание, что (на момент написания) запрашивающий * не может * выбрать ответ, поскольку существует принудительная задержка в stackoverflow. – Quentin

+1

Почему не стандартный ответ людям, использующим «глобальный», чтобы победить их вокруг головы влажной скумбрии? –

ответ

3

Поскольку $a находится вне области видимости, объявленное после вызова функции, и у вас есть синтаксическая ошибка. Вам нужно global $a.

$a = "123"; 
echo test(); 

function test() { 
    global $a; 
    $b = $a; 
    return $b; 
} 

Результат

123

Посмотрите на variable scopes

+0

Уважаемый, echo test(); – user1940813

+0

Дорогой, Я не могу объявить $ a перед функцией, потому что я хочу передать значение $ b другому

, может мне помочь другой метод? – user1940813

+0

@ user1940813 Пожалуйста, уточните свой вопрос с большим количеством кода. – Kermit

0

Во-первых, вы не можете заполнить переменную так: b = $a вам нужно использовать правильный синтаксис PHP, так: $b = $a.

Во-вторых, «njk» получил это право, вам нужно объявить переменную глобальной, поскольку она выходит за пределы области видимости, поэтому будет работать global $a.

Наконец, он будет работать только если вы заранее определить переменную перед вызовом функции, так это то, как он выглядел бы:

$a = 123; 

function test() { 

    global $a; 

    $b = $a; 

    return $b; 

} 

echo test(); 

Это вернет этот результат:

123 

Надеюсь, что помогает.

Смежные вопросы