代码之家  ›  专栏  ›  技术社区  ›  DFectuoso

PHP和宏(Lisp样式)?

  •  0
  • DFectuoso  · 技术社区  · 16 年前

    嗨,我在学习Lisp,我整天都在编写PHP程序,所以我在处理php.net,找到了eval函数…所以我开始玩了!

    我想知道更多关于如何使用eval来做疯狂的事情,我知道你可以用这个和所有的东西来实现功能…但我想问下一个代码为什么不起作用:

    $var = "echo \"FOZZ\";";
    for($i = 0; $i < 100; $i++)
        $var  = "eval(\"".$var."\");";
    print $var;   
    eval($var);
    

    还有什么其他东西对eval很有趣!

    3 回复  |  直到 15 年前
        1
  •  1
  •   jacobangel    16 年前

    你的陈述是“eval”(“eval”(“echo”fozz“;”);“)”。你的双引号互相干扰,造成了错误。

    您可以尝试将第一行更改为$var=“echo\'fozz\';”;

    注意:请小心使用Eval。

        2
  •  1
  •   gord    15 年前

    对于Web编程的常见情况,我开发了一个名为xilla_tags的库,它使编写Lisp风格的PHP代码变得容易,与传统方法相比,它的可读性更高。

    有关xilla_标签,请参见 xilla tags sample .

    关于PHP中的Lisp风格,JacobHannsen在他的Bitchware网站上有一篇很好的文章,介绍一个更一般的案例。

        3
  •  0
  •   Bill Karwin    16 年前

    它不起作用,因为您需要转义带引号的字符串中的引号。自从 $var 包含引号,您需要在将其填充到另一层eval中的每个迭代中转义引号。

    但不管怎样,我不纵容使用 eval() 太像这样了。即使使用一次也应该是罕见的,而且只在最必要的情况下使用。 表达式() 在任何编程语言中, accident 等待发生。