Echo php标识符就像它们一样,即语法上!

时间:2011-07-20 04:14:25

标签: php string syntax echo

在我的PHP应用程序的某个地方,我需要回应PHP的全局变量的语法,即类似的东西 echo "$_POST['submit']"; 但这不起作用。任何人都可以对此有所了解吗?

实际的代码是: echo "<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>";

3 个答案:

答案 0 :(得分:2)

这是不正确的:

<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}']

切换到:

<?php 
 if(isset($_POST['submit'])) 
 echo 'value="'. $_POST[$column['Field']];

// or 
 echo 'value="'. $_POST['submit'].'"';

?>

你需要的那个

更新:来自评论。

echo <<<HERE_DOC
  <?php if(isset($_POST['submit'])) 
        echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>';
HERE_DOC;

这将回显heredoc字符串

之间的所有字符串

详细了解HEREDOC Syntax

答案 1 :(得分:1)

尝试使用nowdoc

$str = <<<'EOD'
<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>
EOD;

这可以从PHP 5.3获得,它不会将变量值

插入字符串

回应它只需做一个:

echo $str;

echo htmlentities($str);

答案 2 :(得分:1)

当使用大量双引号和单引号回显复杂的内容时,您应该使用nowdoc语法:http://php.net/manual/en/language.types.string.php

尝试类似:

echo <<<'STRING'
<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>
STRING;

您也可以使用单引号执行此操作,但您需要转义字符串中的所有单引号,例如:

echo '<?php if(isset($_POST[\'submit\'])) echo \'value="\'. $_POST[\'{$column[\'Field\']}\'] .\'"\'; ?>';

最后,如果您要输出到HTML,则需要使用htmlspecialchars()<转换为&lt;,'&gt;'到&gt;&&amp;

echo htmlspecialchars(<<<'STRING'
<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>
STRING
);

echo htmlspecialchars('<?php if(isset($_POST[\'submit\'])) echo \'value="\'. $_POST[\'{$column[\'Field\']}\'] .\'"\'; ?>');