在PHP中执行字符串作为求值

在PHP中执行字符串作为求值,php,Php,我有以下代码: <?php class test { private $linenum = "__LINE__ . \" - \" . __CLASS__"; function exec() { return $$this->linenum; } } $x = new test(); print_r($x->exec()); 如的文档所述: 所有这些“神奇”常量都是在编译时解

我有以下代码:

<?php

class test
{
        private $linenum = "__LINE__ . \" - \" . __CLASS__";

        function exec()
        {
                return $$this->linenum;
        }
}

$x = new test();
print_r($x->exec());
如的文档所述:

所有这些“神奇”常量都是在编译时解析的

传递给的字符串的编译时间发生在执行
eval()
时,但
\uuuu行\uuuuu
在其获取用于计算的源代码中(即在
$linenum
中生成的一行)

使用这种想法无法实现日志记录

坚持。即使它的名称中包含“debug”,它在PHP中也始终可用(除非它在条目下的
PHP.ini
中被特别禁用)。所有最常用的框架和库在需要生成好的日志时都会使用它