为什么PHP中函数中获取不到外部的变量

$q = '123';

function hi(){
    echo $q;
}

函数中获取不到变量 $q,为什么以及有什么办法获取到吗?

阅读 5.9k
6 个回答

写js习惯了吧...PHP也有闭包,可以用use使用外部变量。

当然像 @chanywn 回答用global关键字也可以,但全局变量最好不要使用,就像js不推荐var全局变量一样。

<?php

$q = '123';

$hi = function () use ($q) {
    echo $q;
};

$hi();
$q = '123';

function hi(){
    global $q;
    echo $q;
}

function中形成了一个局部变量,与外面隔绝了。如果你要引入外面的变量:
1.将外部变量作为参数传递进来。
2.在function中global $str;引进来

$q = '123';

function hi($q){
    echo $q;
}

hi($q);

function hi($q){

echo $q;

}

新手上路,请多包涵

我觉得最好用的就是它
$q = '123';

function hi($q){

echo $q;

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题