我遇到此代码的问题:
$myvariable = "<?php $user_id = '5'; ?>";
...现在我用php ...
将其写入文件这是我打开保存文件时看到的内容:
<?php = '5'; ?>
缺少$ user_id!
为什么会发生这种情况,有没有办法解决这个问题?
答案 0 :(得分:5)
当您使用双引号时,文本中的任何$variables
都将替换为其当前值。因为$user_id
未在当前正在运行的代码中定义,所以它将被替换为任何内容。
有几种方法可以防止这种情况发生。你可以用单引号包装你的字符串,用反斜杠转义文本中的现有单引号:
$myvariable = '<?php $user_id = \'5\'; ?>';
或者你可以用反斜杠逃避$
,这样它就不会被解释:
$myvariable = "<?php \$user_id = '5'; ?>";
答案 1 :(得分:2)
如果您使用双引号括起字符串,PHP会解释字符串中的变量。但是,如果使用单引号,它会按字面解释字符串。
尝试转义变量名称中的美元符号。像这样:
$myvariable = "<?php \$user_id = '5'; ?>";