Php IF/ELSE语句中的动态链接

Php IF/ELSE语句中的动态链接,php,dynamic,hyperlink,Php,Dynamic,Hyperlink,我为任何误用术语道歉…我是个笨蛋 我有一个动态创建的页面,其中包含一个动态链接。我添加了一个IF/ELSE语句,根据变量$rowsphoto中的项数显示不同的单词 不同的单词显示正确,但生成的URL包含所有PHP,而不是生成正确的URL 这是原始代码,工作正常: <?php if($portfolioid != 0) { ?> <div class="extrafield">Additional works in <a href="index.php?opt

我为任何误用术语道歉…我是个笨蛋

我有一个动态创建的页面,其中包含一个动态链接。我添加了一个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; ?>

其他工程
其他工程
你把
html
php
混合得很糟糕。您应该将它们分开,以保持代码干净简洁


它显示php而不是正确变量的问题在于():


不能在PHP中使用PHP标记,只需转义字符串即可 边界并使用。连接运算符,而不是尝试打开 新的PHP标记,例如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>';
    }
?>


从技术上讲,这是有效的语法,但它不是您想要的。您不希望在字符串中间有<代码> <代码>。您已经在使用php,因为您正在回显字符串。您所做的只是用变量回显文本字符串。您可能想要做的是将变量用大括号括起来,这样字符串的结尾就像
echo“test{$foo}bar”
您不能在PHP内部使用PHP标记,您只需要转义字符串边界并使用
连接运算符,而不是尝试打开新的PHP标记,例如
echo“string here”$瓦名称而不是
在这里回显“字符串”
谢谢–效果非常好!现在我完全明白了。很高兴能帮上忙,伙计!还有@Aaron,这将帮助您理解速记语法:)