意外的括号 - PHP

时间:2012-05-01 02:53:50

标签: php syntax-error brackets

这是一些混有HTML的PHP​​,我很抱歉它很混乱。                                 

  <div class="media"><?php echo ($inf['post_url']) ?><img src="<?php echo($inf['photos'][0]['alt_sizes'][0][url]); ?>" /></div>
  {block:Caption}<?php if (array_key_exists('caption', $inf))?><div class="copy"><?php Echo ($inf['caption']);?></div><?php }; ?>
  <?php }; ?>

第二行产生此错误

Parse error: syntax error, unexpected '}' on line 1708

我没有看到括号有任何问题。产生这个错误的原因是什么?

4 个答案:

答案 0 :(得分:1)

如果您正确格式化代码以使其实际可读,那么多余的支架(以及缺少的开口支架)很容易被发现:

    <div class="media">
        <?php echo ($inf['post_url']) ?>
        <img src="<?php echo($inf['photos'][0]['alt_sizes'][0][url]); ?>" />
    </div>
    {block:Caption}
    <?php if (array_key_exists('caption', $inf))?>
        <div class="copy">
            <?php Echo ($inf['caption']);?>
        </div>
    <?php }; ?>
<?php }; ?>

答案 1 :(得分:1)

如果您正确缩进代码,这将非常有用。

    <div class="media">
        <?php echo ($inf['post_url']) ?>
        <img src="<?php echo($inf['photos'][0]['alt_sizes'][0][url]); ?>" />
    </div>
    {block:Caption}
    <?php if (array_key_exists('caption', $inf)) ?>
        <div class="copy">
        <?php Echo ($inf['caption']);?>
        </div>
    <?php }; ?>
<?php }; ?>

非常基本,关闭括号没有相应的开口括号。

更多风格建议:echo是一个PHP构造,因此您不需要像函数一样调用它,echo something等同于echo(something),但前者是首选。此外,与保留字的大小写保持一致是有意义的,即如果您使用小写,始终使用小写字母保留字。

答案 2 :(得分:0)

末尾有一个额外的括号以及一些多余的分号,“echo”被大写。试一试:

<div class="media">
   <?php echo ($inf['post_url']); ?>
   <img src="<?php echo($inf['photos'][0]['alt_sizes'][0][url]); ?>" />
</div>
   {block:Caption}
   <?php if (array_key_exists('caption', $inf)) {?>
     <div class="copy">
     <?php echo ($inf['caption']);?>
     </div>
   <?php } ?>

答案 3 :(得分:0)

如果您将所有HTML分解,第2行和第3行就会出现:

if (array_key_exists('caption', $inf)) Echo ($inf['caption']); };  }; 

你不需要任何一个右大括号。