+ -
当前位置:首页 → 问答吧 → 好无聊啊~发个技术帖玩玩

好无聊啊~发个技术帖玩玩

时间:2010-10-07

来源:互联网

记得曾经的曾经,看到过一个帖子,问:PHP能不能删除本文件?就是说,执行index.php的时候能不能删除index.php?
当时我毫不犹豫的回答,不能,因为index.php正在被解释执行,肯定会出错。
后来楼下有兄弟回帖,可以,实验通过。
我也就实验了一下,结果发现真的可以。
仔细一想也就明白为什么了。
说PHP是解释执行,其实PHP还是有一个编译过程的,这个编译不是将PHP脚本编译成一个可执行程序以文件形式保存起来,而是直接编译进缓存中去。
或许这么说不准确,但是它确实存在一个编译过程。
编译后,运行的脚本其实是来自内存中,而不是文件中,因此这个时候在index.php中执行删除index.php文件的命令也是可以执行的,因为index.ph已经被编译加载进内存了,不再需要它。
这就相当于是用内存中的脚本删除一个文件。自然是任何文件都可以删除的,包括它自己
或许很多大虾甚至一些新手都已经对这些有所了解的。本文只是说说自己的一些想法,给超级菜鸟解惑兼增加知识。
如果你都知道了,一笑而过吧

作者: huaihuajio   发布时间: 2010-10-07

呵呵, 这就是脚本语言...删除脚本文件是可以的, 但是你就无法删除其正在运行的VM相关文件.

作者: 泠月   发布时间: 2010-10-07

作者: 清风明月   发布时间: 2010-10-07

呵呵.学习了.www.ju-qi.com

作者: juqi   发布时间: 2010-10-07

niubi

作者: php淮北   发布时间: 2010-10-07

加载到内存中我同意,至于编译了没有不知道,php不是解释型语言吗?

作者: luojianguo57   发布时间: 2010-10-07

学习了

作者: 寂寞流星php100   发布时间: 2010-10-07