IF/ELSE 语句中的动态 link

Dynamic link in IF/ELSE statement

对于任何误用术语,我深表歉意...我是菜鸟...

我有一个动态创建的页面,其中包含动态 link。我添加了一个 IF/ELSE 语句以根据变量 $rowsphoto.

中的项目数显示不同的词

不同的词显示正确,但生成的 URL 包含所有 PHP,而不是生成正确的 URL。

这是原始代码,可以正常工作:

<?php if($portfolioid != 0) { ?>
    <div class="extrafield">Additional works in <a href="index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105" class="portfoliocol">Portfolio:</a></div>

这是添加 IF/ELSE 语句后的代码:

<?php if($portfolioid != 0) { ?>
    <div class="extrafield">    
<?php
if ($rowsphoto <= 4){
    echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Edition:</a>";
} else {
    echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Portfolio:</a>";
}                          
?>
</div>

我 运行 通过几个语法检查代码,它们都没有错误地返回。我究竟做错了什么?这可能吗?

你最好像这样正确使用它:

<?php if($portfolioid != 0): ?>
    <div class="extrafield">
    <?php if($rowsphoto <= 4): ?>
        Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid; ?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid; ?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Edition:</a>
    <?php else: ?>
        Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid; ?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid; ?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Portfolio:</a>
    <?php endif; ?>
    </div>
<?php endif; ?>

你把 htmlphp 混在一起很糟糕。您应该将它们分开以保持代码简洁明了。


您显示 php 而不是正确变量的问题是因为 ():

You can't use PHP tags inside PHP, you just need to escape the string bounds and use the . concatenation operator instead of trying to open new PHP tags, e.g. echo "String here" . $varname; as opposed to echo "String here"

虽然 Darren 的回答是正确的,但您也可以留在 php

<?php
    if($portfolioid != 0) {
        echo '<div class="extrafield">';    

        if ($rowsphoto <= 4){
            echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=$artistid&pid=$portfolioid&album=$albumid&id=$photoidd&Itemid=105' class='portfoliocol'>Edition:</a>";
        } else {
            echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=$artistid&pid=$portfolioid&album=$albumid&id=$photoidd&Itemid=105' class='portfoliocol'>Portfolio:</a>";
        }                          

        echo '</div>';
    }
?>