标题说的可能有点不清楚。我是这样的意思,比如c或者c++,我可以先声明一个函数原型,然后就可以调用这个函数了,函数的实现(定义)可以放在调用的后面。
比如
int getSum(int a, int b); //函数原型声明
getSum(4, 6);
int getSum(int a, int b)
{
return a + b;
}
但是我想php是解释型的语言,这一点应该有所不同吧?因为他在解释到上一行的时候也不可能知道下面的事情吧。关键是我记得如果调用一个函数的时候没有定义的话,php会发出一个fatal error啊,可是我今天运行一段代码的时候却没有错误提示。
我写的够夸张的,我先调用了函数,然后把函数定义放在了调用的下一行。类似这样:
getSum(4, 6); //函数原型声明function getSum($a, $b)
{
return $a + $b;
}
比如
int getSum(int a, int b); //函数原型声明
getSum(4, 6);
int getSum(int a, int b)
{
return a + b;
}
但是我想php是解释型的语言,这一点应该有所不同吧?因为他在解释到上一行的时候也不可能知道下面的事情吧。关键是我记得如果调用一个函数的时候没有定义的话,php会发出一个fatal error啊,可是我今天运行一段代码的时候却没有错误提示。
我写的够夸张的,我先调用了函数,然后把函数定义放在了调用的下一行。类似这样:
getSum(4, 6); //函数原型声明function getSum($a, $b)
{
return $a + $b;
}
不是啊,我php里面那样写出不来结果,也不给错误提示。奇怪了啊。不过,php里面有函数原型一说没?
没有,php是解释完才执行, 函数放在后面没关系
先解释 在执行
修改
echo getSum(4, 6); //函数原型声明function getSum($a, $b)
{
return $a + $b;
}
<?php
echo getSum(4, 6);
echo getmypid();
function getSum($a, $b)
{
return $a + $b;
}
?>
其过程是这样的:
先由语法分析程序将程序代码翻译成一种中间代码(俗称P指令),然后交由虚拟处理机(俗称P机器)完成成序的执行