php中为什么函数在未被定义前调用也能成功执行?
<?phpechofun();functionfun(){return'test';}?>比如上面这段代码,为什么函数在未被定义前调用也能成功执行???如果说php是解释...
<?php
echo fun();
function fun(){
return 'test';
}
?>
比如 上面 这段代码, 为什么函数在未被定义前调用也能成功执行??? 如果说php是解释完后再执行,那么为什么 如果 变量在未被定义前调用 PHP就会报错呢???
谢谢谢谢谢谢谢谢谢!!!!!谢谢大家了!!!!谢谢谢谢!!!! 展开
echo fun();
function fun(){
return 'test';
}
?>
比如 上面 这段代码, 为什么函数在未被定义前调用也能成功执行??? 如果说php是解释完后再执行,那么为什么 如果 变量在未被定义前调用 PHP就会报错呢???
谢谢谢谢谢谢谢谢谢!!!!!谢谢大家了!!!!谢谢谢谢!!!! 展开
4个回答
展开全部
首先PHP不是单纯的按照行来边解释边执行的,而是先由Zend引擎翻译PHP代码到Zend二进制操作码,然后再去执行操作码。
对于function的位置,因为函数的作用域是全局的,所以只要定义了,那么就可以在任意位置去调用它。但是除了两种情况,函数必须在其调用之前定义,一是在条件语句中定义的函数,二是在函数中定义的函数。在PHP的文档中有这样的示例,你可以去看看,我就不多解释了。
对于function的位置,因为函数的作用域是全局的,所以只要定义了,那么就可以在任意位置去调用它。但是除了两种情况,函数必须在其调用之前定义,一是在条件语句中定义的函数,二是在函数中定义的函数。在PHP的文档中有这样的示例,你可以去看看,我就不多解释了。
参考资料: http://php.net/manual/zh/functions.user-defined.php
展开全部
这个和其它编程语言一样,你调用fun()时,它自动会去解析fun()这个函数体,所以,无论你是放在前面还是放在后面,或者放在另外一个文件中,都会被成功执行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
php是叫编译,你调用之前,这个方法已经在内存中了,而申明变量的话,你不申明,就不会在内存中开辟控件去保存,大概就是这个意思
而客户端脚本是逐行执行,所以JS的方法必须先有了才能调用
而客户端脚本是逐行执行,所以JS的方法必须先有了才能调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
js和php是解释型语言。运行时,变量和函数都是先加载到内存,只是变量先都被赋值为空,但是你用到时,他不会报未定义的错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询