2014-10-05 33 views
-2

對不起,我的語法錯誤。但我還沒有找到解決方案。事情是,我有這樣的代碼:Div內php的

<?php if (get_option('phone') != '') : ?> 
    <div class="phone"><?php echo do_shortcode(get_option('phone')); ?> 
    </div> 
    <?php endif; ?> 

而且我想使相同,但在一個循環內。現在我有這個,但它仍然不工作:

<?php 
    $social = array("facebook", "twitter", "googleplus", "linkedin"); 

     for($i=0; $i<$longitud; $i++) { 
     if (get_option($social[$i]) != '') { 
     echo'<div class=".$social[$i].">' . do_shortcode(get_option($social[$i])) . '</div>'; 
     } 
     } 

     ?> 
+2

這裏有如此混亂的輸出風格,請學習如何輸出數據 – 2014-10-05 13:56:30

+1

我想你最喜歡的食物是意大利麪條。 – 2014-10-05 13:58:43

+0

正如@u_mulder所說。你已經在php代碼中,然後重新打開回聲裏面的php代碼,然後你在回聲裏面重新回顯 – Kypros 2014-10-05 13:58:50

回答

1

你nerver用括號[]爲數組!和連接運算符合並所有變量和文本。

$social = array("facebook", "twitter", "googleplus", "linkedin"); 

for($i=0; $i<$longitud; $i++) { 
    if (get_option($social[$i]) != '') { 
     echo'<div class="$social[$i]">' . do_shortcode(get_option($social[$i])) . '</div>'; 
    } 
} 
+0

請解釋一下爲什麼,而不是僅僅給出答案。 – 2014-10-05 14:05:40

2

我建議你停止複製/粘貼的東西,花幾分鐘時間來閱讀你正在嘗試使用的代碼確實和它是如何工作的。

一切地方開始和結束的地方這樣:

<?php {something_something} ?> 

和:

echo {something_something} ; 

被認爲是有效的,這一點:

<?php echo <?php echo ?> <div> ?> 
{more php code} 

無效

1

要使用那些陣列在循環中,您需要使用[]而不是()

get_option($social[$i]) 

而且因爲你使用單引號不插裏面的變量這些變量將無法正常工作,使用雙引號來代替:

'<div class="$social($i)">' 

修改後的代碼:

$social = array("facebook", "twitter", "googleplus", "linkedin"); 
for($i=0; $i<$longitud; $i++){ 
if (get_option($social[$i]) != '') { 
     echo "<div class='$social[$i]'>" . do_shortcode(get_option($social[$i])) . '</div>'; 
    } 
} 
+0

它甚至不可解析,因此引用是次要問題。 – 2014-10-05 14:08:35

+0

@KolyolyHorvath耶切換了重點,應該是數組的正確用法,而不是那些不是解析問題的引號 – Ghost 2014-10-05 14:10:13

+0

。 「這個問題是'<?php' – 2014-10-05 14:11:09

0

每個變量如果你在(')下使用它,那麼它必須在它的外面,所以你使用時那麼你必須寫:get_option('.$social[$i].')

在這裏你會看到我使用(。)點分隔它,那麼它將被視爲變量。在你的代碼行中,每當你在變量字符串中寫入變量時,它應該用變量(。)分隔變量(變量),就在變量之前和之後。