我对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。我早早地在聊天中问过这个问题,并且认为我理解正确,但是当我去实现它时,我的想法仍然像,这是如何工作的?这对我来说似乎是某种黑客攻击。
答案 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)
npm link