我不在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();
答案 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()
。