You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP模板字符串字面量中插入if语句实现商品已加购标识展示

你不能直接在PHP的双引号字符串模板中嵌套if/for这类控制语句,正确的做法是提前计算好需要插入的「已加购」标识HTML内容,存为单独变量后再插入到模板对应位置,修改后的完整代码如下:

function component($productname,$genre,$beat_tags,$productprice1,$productprice2,$productprice3,$productprice4,$productimg,$product_id) {
    // 提前计算已加购标识的HTML内容,默认值为空
    $added_to_cart_html = '';
    if (isset($_SESSION['cart'])) {
        for ($i=0; $i < count($_SESSION['cart']); $i++) { 
            if ($_SESSION['cart'][$i]['product_id'] == $product_id) {
                $added_to_cart_html = '<div class="item_added_to_cart"><img src="images/website/shopping_cart_added.png"></div>';
                break;
            }
        }
    }

    $element = "
        <div class=\"track_column\">
            <!--<form action=\"tracks.php\" method=\"post\">-->
                <div class=\"track_card_content\">
                    <div class=\"track_image\">
                        <img width=\"50\" height=\"50\" src=\"$productimg\" alt=\"product image\">
                        <div class=\"mediPlayer\">
                            <audio class=\"listen\" preload=\"none\" data-size=\"50\" src=\"Multiple-circular-player-master/sounds/piano.mp3\"></audio>
                        </div>
                    </div>
                    <div class=\"card-body\">
                                <h5 class=\"card-title\">$productname</h5>
                                <p class=\"card-genre\">
                                    Genre: $genre
                                </p>
                                <p class=\"card-text\">
                                    Tags: $beat_tags
                                </p>
                                    <span class=\"price\">$$productprice1+</span>
                                <div class=\"cart-track-button\">Add to Cart</div>
                                    <div class=\"license_dropdown\" style>
                                        <div class=\"license_dropdown_options\">
                                            <ul class=\"license_dropdown_options_main\">
                                                <li>
                                                <form action=\"tracks.php\" method=\"post\">
                                                    <button class=\"option_button\" type=\"submit\" name=\"add\">
                                                        <div class=\"option_title\">Basic</div>
                                                        <div class=\"option_price\">$$productprice1</div>
                                                        <input type='hidden' name='product_id' value='$product_id'>
                                                        <input type='hidden' name='product_price' value='$productprice1'>
                                                        <input type='hidden' name='category' value='lease'>
                                                        <input type='hidden' name='option' value='basic'>
                                                        <input type='hidden' name='quantity' value='1'>
                                                    </button>
                                                </form>
                                                </li>
                                                <li>
                                                <form action=\"tracks.php\" method=\"post\">
                                                    <button class=\"option_button\" type=\"submit\" name=\"add\">
                                                        <div class=\"option_title\">Premium</div>
                                                        <div class=\"option_price\">$$productprice2</div>
                                                        <input type='hidden' name='product_id' value='$product_id'>
                                                        <input type='hidden' name='product_price' value='$productprice2'>
                                                        <input type='hidden' name='category' value='lease'>
                                                        <input type='hidden' name='option' value='premium'>
                                                        <input type='hidden' name='quantity' value='1'>
                                                    </button>
                                                </form>
                                                </li>
                                                <li>
                                                <form action=\"tracks.php\" method=\"post\">
                                                    <button class=\"option_button\" type=\"submit\" name=\"add\">
                                                        <div class=\"option_title\">Unlimited</div>
                                                        <div class=\"option_price\">$$productprice3</div>
                                                        <input type='hidden' name='product_id' value='$product_id'>
                                                        <input type='hidden' name='product_price' value='$productprice3'>
                                                        <input type='hidden' name='category' value='lease'>
                                                        <input type='hidden' name='option' value='unlimited'>
                                                        <input type='hidden' name='quantity' value='1'>
                                                    </button>
                                                </form>
                                                </li>
                                                <li>
                                                    <button class=\"option_button\" onclick=\"togglePopup()\">
                                                        <div class=\"option_title\">Exclusive</div>
                                                        <div class=\"option_price\">$productprice4</div>
                                                        <input type='hidden' name='category' value='exclusive'>
                                                        <input type='hidden' name='option' value='exclusive'>
                                                        <input type='hidden' name='quantity' value='1'>
                                                    </button>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                    <!-- 插入提前计算好的已加购标识 -->
                                    $added_to_cart_html
                    </div>
                </div>
            <!--</form>-->
        </div>
    ";
    echo $element;
}

内容的提问来源于stack exchange,提问作者johnnyjohn400

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 06:21:03