Как уже говорили другие, вам нужно передать свое значение в качестве аргумента при вызове функции.
Переменные в PHP "scoped" . Это означает, что где бы вы ни определяли вашу переменную, она будет влиять на ее контекст. В вашем примере $ name, определенное на уровне скрипта, не совпадает с $ name, определенным как параметр функции. Однако $ name, используемое в вашей функции, всегда будет ссылаться на одну и ту же переменную в этой функции .
Чтобы применить это на практике, рассмотрим следующее:
$name = 'a';
function writeName( $name )
{
echo $name; // echoes 'b'
}
writeName( 'b' );
echo $name; //echoes 'a'
Еще один способ думать об этом - просто изменить имена переменных, чтобы они заметно отличались:
$getName= $_POST[ 'name' ];
function writeName( $nameToWrite )
{
echo $nameToWrite;
}
writeName( $getName );
Вы также можете использовать ключевое слово global
внутри своей функции, чтобы PHP знал, что вы ссылаетесь на переменную в глобальной области (т. Е. На уровне сценария вне вашей функции), но это, как правило, плохая практика.
$getName = $_POST[ 'name' ];
function writeName() // Notice that we don't need to pass $getName as an argument
{
global $getName;
echo $getName;
}
writeName();