2012-06-19 70 views
0

我有三個變量($ var,$ var2 & $ var3),我希望它在有值時輸出。這是一個帶foreach的數組嗎?

例如,如果$var = "Data";則:

<ul> 
<li>Data</li> 
</ul> 

若有其他變量有值,那麼:

<ul> 
<li>Data</li> 
<li>Data2</li> 
</ul> 

或者

<ul> 
<li>Data</li> 
<li>Data3</li> 
</ul> 

<ul> 
<li>Data</li> 
<li>Data3</li> 
<li>Data2</li> 
</ul> 

我不完全知道如何創建這個,並考慮到每個人都有不同的方式來執行他們的PHP代碼的方法。有人知道我可以如何創建這個?

另外:我測試某些php代碼時使用http://writecodeonline.com/php/

回答

5
<ul> 
    <?php foreach (array($var1, $var2, $var3) as $var) : ?> 
     <?php if (!empty($var)) : ?> 
      <li><?php echo $var; ?></li> 
     <?php endif; ?> 
    <?php endforeach; ?> 
</ul> 

您可以see the output herewritecodeonline.com


或者,也許你更喜歡這樣的:

<ul> 
    <?php 
    foreach (array($var1, $var2, $var3) as $var) { 
     if (!empty($var)) { 
      echo '<li>' . $var . '</li>'; 
     } 
    } 
    ?> 
</ul> 

(它不事真的,只是使用任何你覺得看起來更好)

+0

你真的需要開始停止每一行的php解析嗎? – 2012-06-19 20:20:59

+1

如果你不使用模板引擎,這是(在我看來,我相信我與許多PHP開發人員分享它)最乾淨的方式來做到這一點。此外,每當您打開/關閉'php'標籤時,您都不會啓動/停止PHP引擎... – Jeroen

+0

非常感謝!有效!特別是當它是空的時候,我不會在它旁邊看到一個沒有任何東西的點。 – taeja87

3

你可以試試:

<ul> 
<?php foreach(array($var, $var2, $var3) as $value) : ?> 
    <?php if (!empty($value)) : ?> 
     <li><?php echo $value; ?></li> 
    <?php endif; ?> 
<?php endforeach; ?> 
</ul> 
+1

我們的答案太該死! :D – Jeroen

+0

刪除了我的答案 - 無法弄清楚如何讓php標籤出現在這裏:) +1,順便說一句。 – ametren

0

使用數組和foreach打印變量。

http://php.net/manual/en/language.types.array.php

,或者你可以使用這個(我不推薦):

if(isset($var)) { 
    echo $var; 
} 
if(isset($var1)) { 
    echo $var1; 
} 
if(isset($var2)) { 
    echo $var2; 
} 

最好是無功ARGS在我看來。

function funcName() { 
    for ($i = 0;$i < func_num_args();$i++) { 
     echo '<li>'.func_get_arg($i).'</li>'; 
} 
echo funcName($var,$var1,$var2); 
0

我想從標題看你的變量是在數組中。

如果是這樣,只是做一個foreach循環

foreach($arrayVars as $var) 
{ 
    if(isset($var)) 
    { 
    echo '<li>'.$var.'</li> 
    } 
} 

無論如何,你應該解釋清楚你的問題是什麼。我在這裏做出假設是因爲你不太清楚你的問題是什麼。