php的可变变量

2019-12-03  本文已影响0人  喵了个咪0

${@phpinfo()}  可以直接执行phpinfo的函数。但是为什么要用到@呢?经过查找资料后发现,这个是php的可变变量

首先花括号内直接就是phpinfo(),phpinfo函数是不会执行的!

<?$a = "${phpinfo()}";?>

而以下的几种例子,phpinfo函数执行了

1,花括号内第一个字符是空格

复制代码代码示例:

<?$a = "${ phpinfo()}";?>

2,花括号内第一个字符是tab

复制代码代码示例:

<?$a = "${    phpinfo()}";?>

3,花括号内第一个字符串是注释

复制代码代码示例:

<?$a = "${/**/phpinfo()}";?>

4,花括号内第一个字符是回车

复制代码代码示例:

<?$a = "${phpinfo()}";?>

5,花括号内第一个字符是@

复制代码代码示例:

<?$a = "${@phpinfo()}";?>

可变变量内的花括号就是再次解析语法,然后这个解析语法的关键条件是花括号内的第一个字符!,空格,tab,注释,回车是各种语法分析引擎中常见的分割字符,@是PHP语法的一个特殊的容错符号,所以可变变量内的花括号有这么一个规则,需要判断花括号内的内容是否为真正的代码,条件即是文本的第一个字符串是否为PHP语法解析引擎的分割字符和特殊的语法符号。

参考文章:http://www.jquerycn.cn/a_23940

上一篇下一篇

猜你喜欢

热点阅读