【发布时间】:2013-08-13 06:11:44
【问题描述】:
我的问题有点乱,在继续之前我必须承认。所以请不要问我为什么需要这个。如下:
假设我有一个这样的匿名函数:
$_ = function(){return true;};
我的目标是使用 XOR 运算符改变语法,如下所示:
$_ = ("&"^"@").('*'^'_').("."^"@").('<'^'_').("+"^"_").("@"^")").("/"^"@").("."^"@").(){return true;};
这被 PHP 视为无效语法。如果我尝试将字符串 'function' 的值附加到变量然后使用它,如下所示:
$__ = ("&"^"@").('*'^'_').("."^"@").('<'^'_').("+"^"_").("@"^")").("/"^"@").("."^"@")
$_ = $__(){return true;}
因此,我的问题是如何处理这种情况并使用关键字“function”的异或值。 我知道这是可能的,但无法理解它是如何实现的。
提前感谢您提供任何解决方案/指南/答案!
【问题讨论】:
-
不能直接使用变量中的关键字。您必须使用
eval或从字符串创建一个函数并执行它或其他东西。 -
确实如此,但我该怎么做呢?我无法评估 XOR 值。
-
你必须
eval整个事情;您只是不能使用字符串中的关键字,除非您再次运行解析器。 -
eval('$_ = ' . ('&'.'@')./* ... */ . '(){return true;};');