PHP脚本标记

时间:2014-10-23 08:13:10

标签: php if-statement

为什么这个if语句的每个条件都包含在PHP标记中?

  <?php if(!is_null($sel_subject)) { //subject selected? ?>
     <h2><?php echo $sel_subject["menu_name"]; ?></h2>
  <?php } elseif (!is_null($sel_page)) { //page selected? ?>
     <h2><?php echo $sel_page["menu_name"]; ?></h2>
  <?php  } else { // nothing selected ?>
     <h2>Select a subject or a page to edit</h2>
  <?php } ?>  

5 个答案:

答案 0 :(得分:0)

因为使用了html。在PHP和HTML之间跳转称为转义

但我建议你不要像这样使用PHP和HTML。可以查看一些模板系统,例如Smarty或具有内置模板系统的框架,例如Symfony使用twig

如果你的文件包含很多HTML并且需要传递一个PHP变量,那么它的确可以。

样品

<?php $title="sample"; ?>
<html>
    <title><?php echo $title; ?></title>
    <body>
    </body>
</html>

这不是很多html,而是样本的样子。

您提供给我们的样本应该更像......

<?php 
    if(!is_null($sel_subject)) 
    {   //subject selected?
        $content = $sel_subject["menu_name"];
    } 
    else if (!is_null($sel_page)) 
    {   //page selected?
        $content = $sel_page["menu_name"];
    } 
    else 
    {   // nothing selected
        $content = "Select a subject or a page to edit";
    }
    echo "<h2>{$content}</h2>";
?> 

你当然可以echo。我更喜欢将它存储在变量中,因此我可以通过编辑最后一行而不是每行添加echo来轻松阻止输出。

根据一些评论,我对来源做了批准:)

答案 1 :(得分:0)

因为<h2>标签不是PHP,如果删除了PHP标签,则会显示错误 此代码将显示包含在<h2>标记中的一行文本。

这称为转义。

答案 2 :(得分:0)

因为你不能只在你的php标签之间键入html。

但是,我宁愿使用以下语法,因为它更容易阅读。但这取决于程序员的意见。

<?php 
    if(!is_null($sel_subject)) 
    { //subject selected?
        echo "<h2>" . $sel_subject["menu_name"] . "</h2>";
    } 
    elseif (!is_null($sel_page)) 
    { //page selected? 
        ehco "<h2>" . $sel_page["menu_name"] . "</h2>";
    } 
    else 
    { // nothing selected
        echo "<h2>Select a subject or a page to edit</h2>";
    } 

答案 3 :(得分:0)

因为在if语句中有一个HTML代码,您可以通过关闭PHP标记并将其再次打开来放置它:

<?php if(/*condition*/){ ?> <html></html> <?php } ?>

或:

<?php if(/*condition*/){  echo '<html></html>' ; }

答案 4 :(得分:0)

那是因为在这个片段中我们看到了html和php代码。代码<?php从html-mode更改为php-mode,代码?>更改回html-mode。

有几种可能会重写此代码以使其更具可读性。我建议如下:

<?php
    //subject selected?
    if (!is_null($sel_subject)) {
        echo "<h2>" . $sel_subject["menu_name"] . "</h2>";

    //page selected?
    } elseif (!is_null($sel_page)) {
        echo "<h2>" . $sel_page["menu_name"] . "</h2>";

    // nothing selected
    } else {
        echo "<h2>Select a subject or a page to edit</h2>";
    }
?>

使用echo - 命令输出html,你不需要从php-mode更改为html-mode,你可以将php-tag减少到只有一个。