所以我在评论中提到的第一个显示但第二个没有显示并给我一个未识别的错误我可以将它传递给函数,但这是正常的吗?
echo $add;//this one shows normally
if($_SERVER['REQUEST_METHOD']=="POST")
if($_POST['formname']=="Signup Form")
SignUp();
else if($_POST['formname']=="Signin Form")
SignIn();
function SignUp(){
echo $add; //this one give me unidentified erro
$bool = true;
//some code
}
答案 0 :(得分:4)
function SignUp()
{
到
function SignUp()
global $add;
{
或者,更好的是,将其更改为:
function SignUp($add)
{
并将您的来电更改为SignUp($add);
。
第一个版本(global
)似乎更加整洁,但随着时间的推移,它会使事情变得更加复杂。事后我希望我早就没有了解global
- 很少(永远?)正确的做法。
答案 1 :(得分:0)
尝试将其声明为函数中的全局:
function SignUp(){
global $add;
echo $add;`
答案 2 :(得分:0)
您可以将其作为参数传递
function SignUp($add)
{
echo $add;
}
或将其设为全球
function SignUp()
{
global $add;
echo $add;
}
您可以深入了解变量范围here
答案 3 :(得分:0)
在php中阅读变量范围可见性的原理,回答你的问题是第二个例子。在函数体中,您正在寻找局部范围变量,您可以轻松地使变量全局。