在我的PHP应用程序的某个地方,我需要回应PHP的全局变量的语法,即类似的东西
echo "$_POST['submit']";
但这不起作用。任何人都可以对此有所了解吗?
实际的代码是:
echo "<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>";
答案 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()
将<
转换为<
,'&gt;'到>
,&
到&
。
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\']}\'] .\'"\'; ?>');