簡體   English   中英

在php echo中使用php函數

[英]Using a php function inside a php echo

我正在嘗試設置我的WordPress網站,以便如果帖子/頁面分配有特色圖片,則該圖片將用作頁面橫幅。 但是,如果該頁面沒有特色圖片,則必須在加載時從六個可用選項中選擇一個隨機圖片。 我嘗試使用以下if語句:

<div id="slider">
    <div class="theslide">
        <?php
        if ( has_post_thumbnail() ) {
            the_post_thumbnail();
        }
        else {
            echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random = rand(1,6); '.jpg">';
        }
        ?>
    </div>
</div>

它可以工作,但是隨機數功能無法正常關閉,因此代碼最終如下所示:

<div id="slider">
<div class="theslide">
    <img src="/wp-content/uploads/link-ship-chandlers-banner-6  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

而不是像這樣:

<div id="slider">
<div class="theslide">
    <img src="/wp-content/uploads/link-ship-chandlers-banner-6.jpg">
</div>
</div>

我假設我的語法在回顯中使用php是錯誤的,但是我嘗試的所有操作都具有相同的問題或導致php錯誤。

任何幫助,將不勝感激。

提前致謝
威廉

如果您不需要知道選擇了哪個標頭,請執行以下操作:

echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . rand(1,6) . '.jpg">';

使用不止一個; 在一行上是不行的(您實際上是在告訴php解釋器'.jpg">';是一個獨立的命令-不會執行任何操作)

在這種情況下,在echo語句中分配變量(即$whatever = 'something )不會有問題-盡管它實際上也沒有任何用處。 它的作用是創建一個名為$random的新變量,之后您可以使用它來查找使用了哪個標頭-但是如果在echo語句中使用該結果,則將是無法預測的(即,在您的情況下,該變量將包含[random number].jpg ,而不僅僅是隨機數),而是先將隨機數分配給$random如下所示:

$random = rand(1,6);
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random . '.jpg">';
echo "We are using header {$random}, which was chosen at random.";

請注意,上面的示例還顯示了將變量包含在字符串中的另一種方法-使用雙引號,您可以直接在字符串本身內直接寫入變量。 這樣做時,我建議始終使用{}來包裝變量,盡管在這種情況下並不需要包裝-允許引用更復雜的變量(例如數組元素或對象屬性),這也使整個內容更具可讀性。

其他(IMO可讀性較低,可能更容易出錯)的解決方案包括:

$random = rand(1,6);
echo "<img src=\"/wp-content/uploads/link-ship-chandlers-banner-$random.jpg\">";
echo sprintf('<img src="/wp-content/uploads/link-ship-chandlers-banner-%d.jpg">', $random);
printf('<img src="/wp-content/uploads/link-ship-chandlers-banner-%d.jpg">', $random);

實際上這是可行的,但您以;結尾 因此刪除; 並添加一個.

echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random = rand(1,6) . '.jpg">';

否則,您無需設置此變量

echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . rand(1,6) . '.jpg">';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM