Home >Backend Development >PHP Tutorial >web后端 - 关于php中嵌入html代码时结束符“?>”位置为什么这样放置?

web后端 - 关于php中嵌入html代码时结束符“?>”位置为什么这样放置?

WBOY
WBOYOriginal
2016-06-06 20:27:001704browse

大家好,本人初学php,关于html和php代码嵌入有点不明白,

举个例子:

<code><?php if ( $missingFields ) { ?>
<p class="”error”">There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to resend the form.</p>
<?php } else { ?>
<p>Thanks for choosing to join The Widget Club. To register, please fill
in your details below and click Send Details. Fields marked with an asterisk(*) are required.</p>
<?php } ?>
</code>

为什么这里遇到“}”就把它单独放置在<?php ?>中。为什么不能写成这样?

<code><?php if ( $missingFields ) { 
<p class=”error”>There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to resend the form.
 } else { 
<p>Thanks for choosing to join The Widget Club. To register, please fill
in your details below and click Send Details. Fields marked with an asterisk(*) are required.</p>
 } </code>

非常感谢,解疑答惑!

回复内容:

大家好,本人初学php,关于html和php代码嵌入有点不明白,

举个例子:

<code><?php if ( $missingFields ) { ?>
<p class="”error”">There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to resend the form.</p>
<?php } else { ?>
<p>Thanks for choosing to join The Widget Club. To register, please fill
in your details below and click Send Details. Fields marked with an asterisk(*) are required.</p>
<?php } ?>
</code>

为什么这里遇到“}”就把它单独放置在<?php ?>中。为什么不能写成这样?

<code><?php if ( $missingFields ) { 
<p class=”error”>There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to resend the form.
 } else { 
<p>Thanks for choosing to join The Widget Club. To register, please fill
in your details below and click Send Details. Fields marked with an asterisk(*) are required.</p>
 } </code>

非常感谢,解疑答惑!

因为

标签属于html而不是php语言,所以不能加到php起止符号内


表示他为php的 代码块结束符号“}”

因为

<code><p class="”error”">There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to resend the form.</p>
</code>

不是合法的PHP代码.

  1. 在<?php ?>中的是php代码,第二种写法,很明显标签<p></p>中的内容不是php代码。

  2. 如果想要用第二种写法,可以这样写:

<code><?php if ( $missingFields ) { 
echo '<p> ... ';
 } else { 
echo '<p> ... </p>';
 } 
?></code>

所有的非html代码都要嵌入在<?php ?>内,而所有在<?php ?>里面的都会被解析为php代码,按照你的想法,那一对<p></p>标签里的内容不属于php代码,所以应该是这样分段嵌入的:

<code><?php if ( $missingFields ) { ?>
xxx
<?php } else { ?>
xxx
<?php } ?></code>

7048
其实应该这样理解
在php里, ?> 表示开始输出html,

可以这样:

<code><?php if ( $missingFields ): ?>
    <p class="error">There were some problems with the ....</p>
<?php else: ?>
    <p>Thanks for choosing to join The Widget Club....</p>
<?php endif; ?></code>

语言PHP的语法起始标签就是 <?php ?> PHP的语言决定必须这么写!!!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn