为了账号安全,请及时绑定邮箱和手机立即绑定

两次代码为什么输出结果不一致?

589ad1750001f61905000250.jpg

589ad1760001a92105000287.jpg

从第四行开始多加了两行代码,为什么结果就变了呢? echo $m1; echo "
"; 上面这两行代码应该不影响结果的啊?

正在回答

3 回答

#1

不完美 提问者

非常感谢!
2017-02-08 回复 有任何疑惑可以回复我~

很明显你有输出了一次变量m1

0 回复 有任何疑惑可以回复我~
#1

慕先生9451830

有改成又
2017-03-14 回复 有任何疑惑可以回复我~

$m1是一个变量,它已经保存了memory_get_usage();函数返回的值,你后面加的echo $m1;又输出了一遍变量m1的值,所以开头会有两行217808

0 回复 有任何疑惑可以回复我~

你的程序不也要使用内存吗?php进程启动,也是需要emalloc内存的。

php对内存的管理,不是像你想象的那样单纯,没任何操作前不会有任何内存占用,而实际上,你载入的扩展,以及php本身预定义的全局符号表等等都会占用内存。另外,php不是像c语言的malloc那样,你定义个变量,就一定会去找os要,unset时就立刻释放。一个字节不差的返回给你。尤其对于使用数组时申请内存和释放内存时会产生更奇怪的问题。

在c语言中,我们要定义一个不确定元素个数的数组时,都是先malloc一个预估的大小,当数组变大超出我们预申请的大小时,再重新malloc。在php中这一切都帮你做好了,中间过程是隐含的,所以当你用memory_get_usage查看时会发现和你想的不一样。        

0 回复 有任何疑惑可以回复我~
#1

不完美 提问者

谢谢,麻烦你了,嘿嘿
2017-02-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       455995    人
  • 解答问题       6306    个

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

进入课程

两次代码为什么输出结果不一致?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信