eval($cmd)与eval(cmd)有何差异及共性?

更新于
2026-09-28 18:27:29
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计656个文字,预计阅读时间需要3分钟。

eval($cmd)与eval(cmd)有何差异及共性?

这个问题让我感到非常困扰,今天终于解决了。问题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分钟。

eval($cmd)与eval(cmd)有何差异及共性?

这个问题让我感到非常困扰,今天终于解决了。问题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)?>

结果:


发现是可以执行的。

阅读全文