楼主没有搞清楚“变量的作用范围”这个概念,你看你在不同处出现的$id变量,你的本意可能是想它们是指向同一个变量,但实际上却不是,function,class中的都不是一样的值,你照这个道理去分析一下,就能理解这段代码的输出为什么是那样了!解决方法,更改function中的变量名