php中为什么函数在未被定义前调用也能成功执行?

<?phpechofun();functionfun(){return'test';}?>比如上面这段代码,为什么函数在未被定义前调用也能成功执行???如果说php是解释... <?php
echo fun();
function fun(){
return 'test';
}
?>
比如 上面 这段代码, 为什么函数在未被定义前调用也能成功执行??? 如果说php是解释完后再执行,那么为什么 如果 变量在未被定义前调用 PHP就会报错呢???
谢谢谢谢谢谢谢谢谢!!!!!谢谢大家了!!!!谢谢谢谢!!!!
展开
 我来答
嘟嘟乐悠
2013-01-08 · TA获得超过568个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:329万
展开全部
首先PHP不是单纯的按照行来边解释边执行的,而是先由Zend引擎翻译PHP代码到Zend二进制操作码,然后再去执行操作码。

对于function的位置,因为函数的作用域是全局的,所以只要定义了,那么就可以在任意位置去调用它。但是除了两种情况,函数必须在其调用之前定义,一是在条件语句中定义的函数,二是在函数中定义的函数。在PHP的文档中有这样的示例,你可以去看看,我就不多解释了。

参考资料: http://php.net/manual/zh/functions.user-defined.php

flyinghoneybee
2013-01-08 · 超过26用户采纳过TA的回答
知道答主
回答量:202
采纳率:0%
帮助的人:24.4万
展开全部
这个和其它编程语言一样,你调用fun()时,它自动会去解析fun()这个函数体,所以,无论你是放在前面还是放在后面,或者放在另外一个文件中,都会被成功执行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友50d165b
2013-01-08 · TA获得超过122个赞
知道答主
回答量:243
采纳率:0%
帮助的人:132万
展开全部
php是叫编译,你调用之前,这个方法已经在内存中了,而申明变量的话,你不申明,就不会在内存中开辟控件去保存,大概就是这个意思
而客户端脚本是逐行执行,所以JS的方法必须先有了才能调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伯赐邝弘厚
2019-05-05 · TA获得超过1089个赞
知道小有建树答主
回答量:1654
采纳率:100%
帮助的人:7.8万
展开全部
js和php是解释型语言。运行时,变量和函数都是先加载到内存,只是变量先都被赋值为空,但是你用到时,他不会报未定义的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式