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


inner function can't call the variable of the outer function in php

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

这是我的代码,它只回显"世界",即使我使用 global 关键字来包含$a。 为什么?

您必须从外部作用域中分辨出要使用的变量。

<?php
   function a(){
     $a = "hello";
      function b() use ($a){
          echo $a . " World";
      }
      b();    }
   a();
?>
函数

A 在调用函数 B 后先调用 a。 如果在函数 b 中传递参数或在函数 a 中设置为 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();
?>

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

function a($b){ //code } 

而不仅仅是

function a(){ //code } 

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