2012-06-19 2 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-кода. Кто-нибудь знает, как я могу это создать?

Также: я использую http://writecodeonline.com/php/ при тестировании определенных кодов 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 here на writecodeonline.com.


Или, может быть, вы предпочитаете это:

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

(это не имеет значения, на самом деле, просто использовать все, что вы думаете, выглядит лучше)

+0

действительно ли вам нужно было прекратить разбор php на каждой строке? –

+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

Использование массива и Еогеасп для печати переменных ,

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

или вы можете использовать это (то, что я не рекомендую):

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

Бест вар-арг на мой взгляд.

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

Я полагаю из названия, что ваши переменные находятся внутри массива.

Если это так, просто сделать цикл по каждому элементу

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

Во всяком случае, вы должны четко объяснить, что ваша проблема. Я делаю предположения здесь, потому что ваш не очень четко говорит о вашей проблеме.

Смежные вопросы