在PHP代码块之间有条件地嵌入HTML?

时间:2012-08-20 04:26:48

标签: php html

我对PHP很新。我开始学习它就像3周前一样。我在StackOverflow,Google或Youtube上找不到这个问题的答案。这PHP documentation只会让我感到困惑。为了解决这个问题,PHP代码如何与HTML混合工作?

<?php if (something) { ?>
    <p>Hello</p>
<?php } ?>

p元素只会显示某些东西是否具有真实价值,这是怎么回事?...我确信PHP引擎忽略了代码块外部的内容(例如&lt;?php?&gt; ;)并且只解析内部发生的事情。

下面的代码通常由PHP引擎解析并发送到浏览器而不会影响任何HTML元素(即使它明显位于2个代码块之间)。

<?php echo $something; ?>
<p>Hello</p>
<?php echo $something; ?>

我希望我不会因为提出这个问题而受到抨击,因为很多人似乎都知道它是如何在十分之一秒内运作的。

P.S。我早早地在聊天中问过这个问题,并且认为我理解正确,但是当我去实现它时,我的想法仍然像,这是如何工作的?这对我来说似乎是某种黑客攻击。

5 个答案:

答案 0 :(得分:5)

现在很容易。绝对需要一个PHP教程,你可以从http://www.tizag.com/phpT/

开始

这是你的所作所为:

<?php 
//Anything inside me php processes
if($something)
{
    echo "<p>something</p>";
}
//About to stop processing in php
?>
<p>Anything outside of the php statement above will just be printed to the dom</p>

快速注意:将PHP与HTML

分开是一种很好的做法
<?php if ($something) { ?>  <-- where is the other {
<p>Hello</p>
<?php } ?> <-- oh I see it.

答案 1 :(得分:3)

在你的第一个例子中,当且仅当'something'返回true时才会呈现<p>Hello</p>

如果您使用?&gt;关闭php标记但有一个'unclosed'执行,如if (blah) { ...,PHP引擎理解你的愿望,并相应地做。

为什么?

PHP引擎保持“等待”,直到执行关闭为},然后评估最终结果,浏览器继续使用下面的行。

显然,如果你遗漏了最后的},你会看到一些错误,告诉你PHP希望你完成你的开始而你没有

答案 2 :(得分:1)

php和html都是在线解析的。因此,当它向下移动脚本时,它将在标记内运行php脚本,并按照它们的放置顺序显示html。例如:

<? $someVar = "someVar string value"; ?>
<h1>This is a title</h1>
<? if(1 == 1){?>
<p>This paragraph will appear in between the header tags because 1 == 1 is true</p>
<? } ?>
<h3>Another header which will follow the paragraph</h3>
<p>The value of someVar is: <?=$someVar;?></p> // <?= is a short hand for echo

这将显示为:

<h1>This is a title</h1>
<p>This paragraph will appear in between the header tags because 1 == 1 is true</p>
<h3>Another header which will follow the paragraph</h3>
<p>The value of someVar is: someVar string value</p>

基本上只需将其视为服务器读取脚本并解析它看到的任何内容。如果有html,它将显示它,如果有php进行某种计算,然后吐出html,它将显示spt out html。

答案 3 :(得分:0)

你可以使用php代码块在HTML中的任何地方编写php代码

<?php echo "whatever " ?> 

<?php echo "<h1>Here everything will displayed in h1 </h1> "; ?>

如果你使用控制结构( if,switch 等...)那么它的行为就像所有其他语言一样,意味着如果某些东西是 true 那么它将执行部分写在{ }之间。

所以如果你在if条件下写一个未定义的变量,那么它就不会执行代码块,因为未定义的变量被视为 false 条件。

另外,您可以通过var_dump($variable)

检查任何变量值

答案 4 :(得分:0)