如何使用<<<HTML HTML;
返回带有一些php的大html块。
return <<<HTML
<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn(); ?>
<?php if($isflag){?>
<span>DO not do this</span>
<?php } ?>
<?php echo $whatever; ?>
HTML;
我无法理解什么会起作用,什么不起作用!我应该如何使用这种返回<<<HTML HTML;
块与一些我需要回应的php变量和一些回显一些东西的函数(不返回)
答案 0 :(得分:2)
您可以使用“捕获输出”执行此任务。见 Output Control Functions
我有一些我刚刚测试过的示例代码。它捕获$ out1中 div 标记的输出并稍后再次显示。
这种技术用于许多“模板化”库和“框架”中的“视图”。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test of Output control functions</title>
</head>
<body>
<?php ob_start(); // capture the buffer ?>
<div style="border: 4px solid red">
<p>This is a test paragraph</p>
<p>This is test PHP code: <?php echo time(); ?></p>
</div>
<?php $out1 = ob_get_contents(); // end capture ?>
</body>
</html>
<?php echo $out1; // output now or save for later. ?>
<?php var_dump($out1, strlen($out1)); ?>
<?php exit; ?>
答案 1 :(得分:1)
好的,谷歌的heredoc语法为PHP。
但这就是它的工作原理(我认为你试图这样做。
$html = <<<HTML
<div>
<h1>$phpVariableTitle</h1>
<div>
{$thisFunctionEchosomthingNotReturn()}
</div>
</div>
HTML;
return $html;
试试吧。重要! heredoc语法要求您的结束标记保持对齐而没有标签。因此,请确保heredoc标记左侧没有空格或制表符,在此示例中,我的heredoc标记称为HTML。另外,用花括号包装你的php变量/函数是可选的,但这个方法很好。在侧面heredoc块中没有PHP标签。
希望有所帮助。
要使条件语句在内部工作,您需要使用函数:
class My_Class {
public function myCondition($param) {
if($param === true) {
return '<p>True</p>';
} else {
return '<p>False</p>';
}
}
}
$object =new My_Class();
$html = <<<HTML
<div>
<h1>Conditional Statement</h1>
<div> {$object->myCondition(true)} </div>
</div>
HTML;
这样的事情应该有效。但我还没有测试过它。
答案 2 :(得分:0)
您无法在HEREDOC
语法内编写控制结构/函数逻辑。
替代方式..
<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn(); ?>
<?php if($isflag){?>
<span>DO not do this</span>
<?php echo $whatever; }?>
答案 3 :(得分:0)
我无法理解你的问题可能会有所帮助:
<HTML>
<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn();
if($isflag){?>
<span>DO not do this</span>
<?php }//Closing If if it ends here.
echo $whatever; ?>
</HTML>