函数中的PHP函数(没有OOP)很奇怪

时间:2018-03-27 13:26:06

标签: php function

我不在OOP中我想理解为什么在程序模式中我可以声明一个函数,它可以在一个没有错误的函数中嵌套,但是我可以从“main”调用嵌套函数而不能从主函数调用?

示例1:在()中调用b()会导致致命错误/为什么a()不会查看b()?

<?php
function a(){
  // do something
  b(); //Fatal error: Call to undefined function b()

  function b(){
    // do something
  }
}

a();

示例2:从main调用b()会产生致命错误(这是逻辑)

<?php
function a(){
  //  do something

  function b(){
    // do something
  }
} 

b(); // Fatal error: Call to undefined function b()

示例3:调用a()然后从main调用b()不会出错

<?php
function a(){
    //  do something

    function b(){
        // do something
    }

}

a();
b();

1 个答案:

答案 0 :(得分:3)

PHP是一种过程编程语言。它将按顺序执行每一行。您无法在b()内拨打a()的原因是,此时b()尚未宣布。你想要做的是在调用之前声明你的函数

<?php
function a(){
  // do something

  function b(){
    // do something
  }
  b(); 

}

a();

但这仍然是不好的做法。从b()中删除a()

<?php
function a(){
  // do something

  b();

}
function b(){
  // do something
}

a();

这样您就可以随时致电a()b()