PHP解析错误:语法错误,意外'}'

时间:2016-01-24 07:09:45

标签: php codeigniter

我正在尝试用codeigniter开发一个应用程序,我试图在这里找到一个我找不到的错误。代码是下一个:

<?php foreach($projects as $key => $project){ ?>
        <li <?php if ($current_project == $project['id']): ?>class="active"<? endif; ?>><a href="<?php echo $base_url . config_item('language_abbr') ?>/<?= $project['id'] ?>/admin/galerias"><?php echo $project['nombre']?></a></li>
<?php } ?>

在此之前我曾:

<?php foreach($projects as $key => $project): ?>
        <li <?php if ($current_project == $project['id']): ?>class="active"<? endif; ?>><a href="<?php echo $base_url . config_item('language_abbr') ?>/<?= $project['id'] ?>/admin/galerias"><?php echo $project['nombre']?></a></li>
<?php endforeach; ?>

而不是呻吟},它呻吟着关于endforeach;那么会发生什么?。

这是错误所在区域的代码,因为当我删除这部分代码时,它会起作用:

<?php if (!empty($user_id) && $isAdmin): ?>
    <nav>
     <ul class="nav">
       <li 
          <?php if ($current_project == 0): ?>
            class="active"
            <? endif; ?>>
               <a href="<?php echo $base_url . config_item('language_abbr') ?>/0/admin/proyectos"><?= t('h_all'); ?></a>
        </li>

        <?php 
            foreach($projects as $key => $project){ ?>
                 <li 
                  <?php if ($current_project == $project['id']): ?>
                  class="active"<? endif; ?>>
                     <a href="<?php echo $base_url . config_item('language_abbr') ?>/<?= $project['id'] ?>/admin/galerias"><?php echo $project['nombre']?></a>
                 </li>
            <?php } ?>
      </ul>
    </nav>
  <?php endif; ?>

非常感谢

4 个答案:

答案 0 :(得分:1)

也许并不完全是您正在寻找的解决方案的风格,但是很容易阅读以找到潜在的错误。

<?php
    if ( !empty( $user_id ) && $isAdmin ){

        $class=( $current_project == 0 ) ? " class='active'" : '';
        $lang=config_item('language_abbr');
        $linktext=t('h_all');

        echo "
        <nav>
            <ul class='nav'>
                <li{$class}><a href='{$base_url}{$lang}/0/admin/proyectos'>{$linktext}</a></li>";

        foreach( $projects as $key => $project ){
            $class=( $current_project == $project['id'] ) ? " class='active'" : '';
            echo "<li{$class}><a href='{$base_url}/{$lang}/{$project['id']}/admin/galerias'>{$project['nombre']}</a></li>";
        }

        echo "
            </ul>
        </nav>";
    }
?>

您认为错误可能与我原来的答案类似的代码的违规部分 - 在我看来它更容易阅读,因此更容易发现错误的地方 - 尽管这是个人偏好我猜测,原始代码中使用的样式最近似乎更受欢迎。

{{1}}

答案 1 :(得分:0)

<?php foreach($projects as $key => $project){ ?>
 <li <?php if ($current_project == $project['id']): ?>class="active"<? endif; ?>>
<a href="<?php echo $base_url . config_item('language_abbr') ?>/<?= $project['id'] ?>/admin/galerias">
 <?php echo $project['nombre'];?></a></li> <?php } ?>

之后你错过了一个半结肠     $项目[ 'NOMBRE']

答案 2 :(得分:0)

尝试:

<?php
foreach($projects as $key => $project){
echo "<li ".($current_project == $project['id'])?"class=active":""." ><a href='".$base_url . config_item('language_abbr').$project['id']."/admin/galerias' >$project[nombre]</a></li>";
}

?>

答案 3 :(得分:0)

  <?php foreach($projects as $key => $project){ 
         $class = $current_project == $project['id']) ? 'active' : '';
   ?>
         <li class="<?=$class;?>"><a href="<?php echo $base_url . config_item('language_abbr') ?>/<?= $project['id'] ?>/admin/galerias"><?php echo $project['nombre']?></a></li>
    <?php } ?>