php函数 读取顺序问题?

我想写一个函数,但却发现了一个奇怪问题。代码如下: function test(@xm,@nl) { echo "my name is".@xm."age is".@nl; }//@="$"
 echo"error <hr/>"test("libo","18"); ?> 输出后会发现 my name is libo age is 18 error[hr/] ,不知你发现没,error <hr/>跑到后面了,疑问函数按什么顺序读取的?
回复列表(8|隐藏机器人聊天)
  • @Ta / 2012-08-21 / /
    把echo和test()分别写在两行。
  • @Ta / 2012-08-21 / /
    @老虎会游泳 恩恩,我已经写好了。 我现在就是想不通它是怎么读的。 
  • @Ta / 2012-08-21 / /
    @老虎会游泳 恩恩,我已经写好了。 我现在就是想不通它是怎么读的。 
  • @Ta / 2012-08-21 / /
    如果你写的是
    echo "a".b();
    它就会先对b()求值,再把它与"a"连起来输出。
    而在对b()求值时,b()里的echo语句就被输出了。然后b()没有返回任何内容,所以接着输出"a";
  • @Ta / 2012-08-21 / /
    function b()
    {
    echo "b";
    return "c";
    }
    echo "a".b();
    //从理论上来说应该输出bac
  • @Ta / 2012-08-21 / /
    @老虎会游泳 恩谢谢哈。虽然还不大理解为什么要这样。我先死记着,呵呵
  • @Ta / 2012-08-21 / /
    @捕头
    echo 2-1;
    肯定要先算出2-1再输出,对吧。
    那么echo 2-a();呢,肯定要先算出2-a()才输出吧。可是php不知道a()的值,所以肯定要先调用a()才能算出2-a(),得到结果才输出。所以a()是在echo之前调用的。
    你明白了吗?
  • @Ta / 2012-08-21 / /
    恩知道啦。多谢小老虎
添加新回复
回复需要登录