PHP包含文件 - 用于if和while循环的开始和结束括号/大括号{}

时间:2012-11-26 19:00:48

标签: php include curly-braces curly-brackets

使用PHP包含文件 - 打开和关闭括号/大括号{},用于if和while循环,并在文件之间关闭大括号/大括号

大家好,我正在使用PHP包括即:

include_once("include1.php");

一个非常有问题的CSS / HTML设计师。我试图让所有PHP远离设计师,因为他们变得非常恐慌:\并且他们创造了许多问题,删除了代码和事物并弄乱了一切。

所以我一直在使用PHP包含在HTML之间添加必要的PHP。

PHP工作正常,没有错误。

将PHP分成多个包含文件导致我遇到一些问题。

以下是我要分离的一个例子。

要分离的PHP:


<?php
$foo = 0;
$bar = 0;

if($foo == 0){

    $foo++;
    $bar++;
    // more php code

    while($foo < 20){

        $foo++;
        $bar++;
        // more php code

    // Now write the designers HTML here in this loop
    ?>  

        <BR /> Some HTML 
        <?php echo $foo; ?>
         more html 
        <?php echo $bar; ?>
        <BR /> More HTML <BR /> <BR />

    <?php
    // Done with the designers code -Now close my PHP here

   }// END while($foo < 5)

}// END if($foo == 0)
?>

我想将其分为2个包含 - include1.php和include2.php

我希望在while循环之间设计代码。所以我做的是这个:


include1.php        

   if($foo == 0){

    $foo++;
    $bar++;
    // more php code

      while($foo < 20){

        $foo++;
        $bar++;
       // more php code
   ?>

DESIGNERS HTML和一点混合PHP

    <BR /> Some HTML 
    <?php echo $foo; ?>
     more html 
    <?php echo $bar; ?>
    <BR /> More HTML <BR /> <BR />

include2.php

    <?php
   // Done with the designers code -Now close my PHP here

  }// END while($foo < 5)

}// END if($foo == 0)
?>

我收到错误(“解析错误:语法错误,意外$结束)

我有多个if和while和循环。

我的问题是:如何在没有错误的情况下分隔这些括号/括号?

谢谢

3 个答案:

答案 0 :(得分:2)

跨越多个包含的循环或if语句是不可能的,这就是导致语法错误的原因。最好的办法是采用模板系统,真正区分逻辑和表示。

快速而肮脏的解决方案是将设计器的HTML放入单独的.html文件中,并用占位符替换PHP。在循环中,将占位符替换为内容。:

<BR /> Some HTML 
%%_Foo_%%
 more html 
%%_Bar_%%
<BR /> More HTML <BR /> <BR />

答案 1 :(得分:1)

将您的php文件合并为1,并从那里包含一个“设计者”模板文件,您将不会得到该语法错误。

<?php
$foo = 0;
$bar = 0;

if($foo == 0){

    $foo++;
    $bar++;
    // more php code

    while($foo < 20){

        $foo++;
        $bar++;
        // more php code

        include 'template.php'; // Include template here
        // No need to stick the remaining portion of this file into a seperate one

   }// END while($foo < 5)

}// END if($foo == 0)
?>

答案 2 :(得分:0)

你不能这样做,当你包含PHP文件时,它们都必须是有效的PHP。例如,在include1.php中,您没有关闭while循环。因此,执行/包含该文件将产生错误。如果我是你,我会使用像SmartyTwig这样的真实Templating System来避免混淆HTML片段和PHP。