内部函数不能在php中调用外部函数的变量

时间:2014-11-22 09:55:15

标签: php variables

<?php

   function a(){

     $a = "hello";
      function b(){
          global $a;
          echo $a . " World";
      }
      b();
   }

   a();

?>

这是我的代码,它只是回声&#34;世界&#34;甚至我使用global关键字来包含$ a。为什么呢?

3 个答案:

答案 0 :(得分:4)

您必须告诉您要使用的outer scope中的哪个变量。

<?php

   function a(){

     $a = "hello";
      function b() use ($a){
          echo $a . " World";
      }
      b();    }

   a();

?>

答案 1 :(得分:0)

在呼叫功能b之后首先发出呼叫。如果你在函数b中传递参数或在函数中设置为globel $ a

在函数a()中设置为globel $ a,因为此变量在finction b中使用而不传递参数并在函数b中设置globel $ a因为没有定义此变量此函数

<?php

   function a(){
     global $a;
     $a = "hello";
      function b(){
         global $a; 
          echo $a . " World";
      }
      b();
   }

   a();
?>

或者您可以使用

<?php

   function a(){

     $a = "hello";
      function b($a){

          echo $a . " World";
      }
      b($a);
   }

   a();

?>

答案 2 :(得分:0)

请注意,默认情况下,变量不会传递给函数,除非另有说明,例如: 使用

function a($b){ //code } 

而非

function a(){ //code } 

我认为这可能是你所面临的问题。