<一个href=...>语法错误意外


<a href=…> syntax error unexpect something

   <?  $i = 0;
            foreach( $model->authors as $key => $author){
            ?>
                <?
                //if (++$i < count($model->authors)) echo $author->name.';'; else echo $author->name.' ';
                if(++$i<count($model->authors)) 
                {
                    <a href="http://192.168.171.46:9090/search/index?keyword=<? echo $author->name; ?>"><? echo $author->name.';' ?></a>;
                }else echo 
                    <a href="http://192.168.171.46:9090/search/index?keyword=<? echo $author->name ?>"><? echo $author->name.' ' ?></a>; 

                 ?>
            <? }
        ?>

但它显示了这个行语法错误,意

试试这个:

<?php
$i=0;
foreach($model->authors as $key=>$author) { 
    if(++$i<count($model->authors)) {
        echo '<a href="http://192.168.171.46:9090/search/index?keyword='.$author->name.'">'.$author->name.';</a>';
    } else {
        echo '<a href="http://192.168.171.46:9090/search/index?keyword='.$author->name.'">'.$author->name.' </a>';
    }
}

或者,如果您不介意稍作更改,请使用它,因为它更简单一些:

<?php
$ret='';
foreach($model->authors as $key=>$author) 
   $ret.=($ret?'; ':'').'<a href="http://192.168.171.46:9090/search/index?keyword='.$author->name.'">'.$author->name.'</a>';
echo $ret;

假设你正在编写PHP,这样做是这样的:

<?php  
$i = 0;
foreach( $model->authors as $key => $author){
    if(++$i<count($model->authors)) {
        echo "<a href='http://192.168.171.46:9090/search/index?keyword=" . $author->name . "'>" . $author->name . "</a>";
    } else {
        echo "<a href='http://192.168.171.46:9090/search/index?keyword=" . $author->name . "'>" . $author->name . "</a>"; 
    }
}
?>
<?php
$i = 0;
foreach( $model->authors as $key => $author){
    if(++$i<count($model->authors)){
        ?>
        <a href="http://192.168.171.46:9090/search/index?keyword=<?php echo $author->name; ?>"><?php echo $author->name.' '; ?></a>;
        <?php
    }
    else{
        ?>
        <a href="http://192.168.171.46:9090/search/index?keyword=<?php echo $author->name; ?>"><?php echo $author->name.' '; ?></a>
        <?php
    }
}
?>

我看到您对语法感到非常困惑 - 也许您应该考虑至少在开始时使用带有语法检查的编辑器?

<?
    $i = 0;
    foreach ($model->authors as $key => $author):
        if (++$i < count($model->authors)): ?>
            <a href="http://192.168.171.46:9090/search/index?keyword=<?= $author->name ?>"><?= $author->name ?>;</a>
        <? else: ?>
            <a href="http://192.168.171.46:9090/search/index?keyword=<?= $author->name ?>"><?= $author->name ?> </a>
        <? endif;
    endforeach;
?>

或更短的版本。

<?
    $i = 0;
    foreach ($model->authors as $key => $author): ?>
            <a href="http://192.168.171.46:9090/search/index?keyword=<?= $author->name ?>"><?= $author->name,++$i < count($model->authors) ? ';' : ' ' ?></a>
        <?
    endforeach;
?>