新生问题,php执行顺序

xhp5743 2011-07-08 11:12:00

如下代码:
function text1()
{
}
function text2()
{
}

function text3()
{
}

switch ($_GET['n'])
{
case 1:
text1();
break;
case 2:
text2();
break;
case 3:
text3();
break;
}
php没有main()函数,他是怎么知道先执行switch函数的,求解释,我刚刚学PHP 不懂,谢谢了,求解释PH脚本的执行顺序。
...全文
185 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
乌镇程序员 2011-07-08
  • 打赏
  • 举报
回复
考虑一下这个例子:
test();  //test
function test() { echo 'test'; }
xuzuning 2011-07-08
  • 打赏
  • 举报
回复
你怎么知道
function text1()
{
echo "text1";
}
没有被执行呢?
这是函数声明呀!若没有生成这个函数的话
下面的 text1();
又如何能执行呢?
Abin-2008 2011-07-08
  • 打赏
  • 举报
回复
php是从上往下执行.
你前几行都是声明一些function 即方法,没有调用方法,他是不会执行的.
到了switch的时候 就获取了你get方式传送过来的参数的值.
然后才对应进行调用方法, 方法执行输出.
一起混吧 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xhp5743 的回复:]

那么函数text1 就是第一个执行的吗?但是这段代码只会执行一个函数,是由switch来确定的。
引用 1 楼 t5500 的回复:

估计跟JS类似,解释型的语言都会存在一个"预编译"的过程,代码载入后碰到函数、全局变量定义时先进性预编译,然后(按代码块)顺序执行。
[/Quote]执行哪个函数,是根据switch里面的语句而定的。看你怎么定义咯。并不是说按照text1。。顺序来执行的,比如$_GET['n']=2;那么会执行text2()。
xhp5743 2011-07-08
  • 打赏
  • 举报
回复
问题是他为什么会先执行switch
[Quote=引用 5 楼 xuzuning 的回复:]

你是学 C 的吧?
php 与 C 不同,不需要主函数
只要有代码他就执行
[/Quote]
xuzuning 2011-07-08
  • 打赏
  • 举报
回复
你是学 C 的吧?
php 与 C 不同,不需要主函数
只要有代码他就执行

xhp5743 2011-07-08
  • 打赏
  • 举报
回复
那么函数text1 就是第一个执行的吗?但是这段代码只会执行一个函数,是由switch来确定的。
[Quote=引用 1 楼 t5500 的回复:]

估计跟JS类似,解释型的语言都会存在一个"预编译"的过程,代码载入后碰到函数、全局变量定义时先进性预编译,然后(按代码块)顺序执行。
[/Quote]
xhp5743 2011-07-08
  • 打赏
  • 举报
回复
这段代码是响应ajax请求的php代码,ajax传进来一个id,switch根据这个id调用相应的text函数处理。
[Quote=引用 2 楼 eden_sheng 的回复:]

function text1()
{
echo "text1";
}
function text2()
{
echo "text2";
}

function text3()
{
echo "text3";
}

echo "test";
switch ($_GET['n'])
{
case 1:
text1();
break;
case 2:
……
[/Quote]
eden_sheng 2011-07-08
  • 打赏
  • 举报
回复
function text1()
{
echo "text1";
}
function text2()
{
echo "text2";
}

function text3()
{
echo "text3";
}

echo "test";
switch ($_GET['n'])
{
case 1:
text1();
break;
case 2:
text2();
break;
case 3:
text3();
break;
}

看看测试结果
乌镇程序员 2011-07-08
  • 打赏
  • 举报
回复
估计跟JS类似,解释型的语言都会存在一个"预编译"的过程,代码载入后碰到函数、全局变量定义时先进性预编译,然后(按代码块)顺序执行。
xhp5743 2011-07-08
  • 打赏
  • 举报
回复
谢谢各位了,总算搞清楚了。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧