在我的PHP应用程序中的一个地方,我需要在语法上响应PHP的全局变量,即类似的东西echo "$_POST['submit']";
但这行不通。有人能解释一下吗?
实际代码是:echo "<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>";
这是不正确的:
<?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;
这将回显herdoc字符串
之间的所有字符串。阅读更多关于HEREDOC语法的信息
尝试使用nowdoc
$str = <<<'EOD'
<?php if(isset($_POST['submit'])) echo 'value="'. $_POST['{$column['Field']}'] .'"'; ?>
EOD;
这在PHP 5.3中可用,它不会在字符串中插入变量值
回显它只需执行a:
echo $str;
或
echo htmlentities($str);
当回显包含大量双引号和单引号的复杂内容时,您可能应该使用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()
将<
转换为<
, '>'转换为>
, &
转换为&
。
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'']}''] .''"''; ?>');