从函数使用的范围获取变量而不是Global

时间:2017-10-06 10:54:18

标签: php global

如何访问函数Func1中的变量X而不是全局范围

$X='hi';

function Func1(){
     global $X;
     echo $X;
   }
function Func2(){
     $X='hello';
     Func1();    // I want to echo "hello" not "hi"
   }     

2 个答案:

答案 0 :(得分:0)

(首先,努力避免使用全球性的好工作。他们几乎从来都不是正确的答案。)

PHP函数中的变量是本地作用域的 - 它们不会从它们被调用的地方继承任何内容。 Func1不知道任何变量或Func2中发生的任何其他事情,它只知道自己。

如果您想在函数中使用变量,则需要将其作为参数传递:

function Func1($X){
  echo $X;
}

function Func2(){
  $X='hello';
  Func1($X);
}   

值得阅读http://php.net/manual/en/language.variables.scope.php以获得PHP的基础知识基础。

答案 1 :(得分:0)

试一试

$x = 'hi';

function func1(){
   echo func2();
}

function func2(){
   return $x = 'hello';
}

将覆盖x变量,函数将返回变量数据。

接下来,将在func1中调用func2,并在屏幕上显示返回的值。

试着尽量减少行数。