<?php
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "<br />";eval("\$str = \"$str\";");
echo $str;
?>这是个模型:eval("xxx=xxx;");
eval的不是一个简单的参数,而是一个赋值表达式。可以这样认为:
第一步,执行赋值操作
第二步,将赋值后的结果按php代码执行
先把注意力放到=的右半部:
如果写成这样,
xxx = "$str",会把"$str"当做是一个字符串进行操作
xxx = \"$str\",\转义了",会把$str当做一个对象进行赋值,这正是我们想要的
再看=的左半部:
由于是赋值操作,所以$前要加一个\
最后:
eval对最后这个形成的参数$str执行操作,得出结果
相关文章
- jq中数组应用的错误
- 已创建了一个包含学生学号、身高、性别的学生身高信息表并输出到屏幕,学生信息从文件读取。 编写一个函数 void reverse(Seqlist *lp); 功能是对已建立的学生身
- iis运行asp.net页面提示“服务器应用程序不可用”的解决办法_.NET.
- 生成对抗网络GAN损失函数Loss的计算
- 【Python3的函数初识】
- Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取
- SqlServer 多表连接、聚合函数、模糊查询、分组查询应用总结(回归基础)
- AOP 面向切面编程, Attribute在项目中的应用
- 以远程计算机上的用户身份访问Com+应用
- JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)