eval($cmd)与eval(cmd)有何差异及共性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计656个文字,预计阅读时间需要3分钟。
这个问题让我感到非常困扰,今天终于解决了。问题1:关于`eval`的执行是否需要双引号包含:先看三个命令:A: php eval(system(dir))B: php $cmd=system(dir); eval($cmd)结果:A: 报错B: 报错思考:同样
这个问题一直困扰我许久,今天终于解决清楚了
问题1:eval的执行是否需要双引号包括:
先看三个命令:
A:<?php eval(system(dir))?> B:<?php $cmd="system(dir)"; eval($cmd)?>
A结果:
B结果:
报错
思考:
同样是一个命令,为什么会出现如此区别,询问了其他师傅得知:eval执行的是变量的值的时候,该变量值需要闭合,也就是必须是一个完整的语句,需要用分号结尾。根据这个道原理我们改一下上面的命令看看:
<?php $cmd="system(dir);"; eval($cmd)?>
结果:
发现是可以执行的。
本文共计656个文字,预计阅读时间需要3分钟。
这个问题让我感到非常困扰,今天终于解决了。问题1:关于`eval`的执行是否需要双引号包含:先看三个命令:A: php eval(system(dir))B: php $cmd=system(dir); eval($cmd)结果:A: 报错B: 报错思考:同样
这个问题一直困扰我许久,今天终于解决清楚了
问题1:eval的执行是否需要双引号包括:
先看三个命令:
A:<?php eval(system(dir))?> B:<?php $cmd="system(dir)"; eval($cmd)?>
A结果:
B结果:
报错
思考:
同样是一个命令,为什么会出现如此区别,询问了其他师傅得知:eval执行的是变量的值的时候,该变量值需要闭合,也就是必须是一个完整的语句,需要用分号结尾。根据这个道原理我们改一下上面的命令看看:
<?php $cmd="system(dir);"; eval($cmd)?>
结果:
发现是可以执行的。

