2015-06-30 3 views
1

Здравствуйте, знаете ли вы, как это записать на PHP, не повторяя имя переменной?Если переменная не пустая отображаемая переменная без повторяющегося имени переменной

if($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") { 
    echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
} else if($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") { 
    echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
} else if($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") { 
    echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
} 

Конечно, вы можете написать

$a = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
$b = $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
$c = $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 

if($a) { echo $a; } else if($b) { echo $b; } else if ($c) { echo $c; } 

Это немного короче, но я до сих пор интересно, если есть некоторая синтаксическая хорошая вещь, чтобы написать его без переменного повторения.

Тернарный оператор не решает проблему из-за «elseif», я думаю.

+0

либо запишите его полностью, либо скопируйте/ссылайтесь на другую переменную и используйте это. нет «ярлыков». что или просто не используют безумно длинную переменную/ключевые имена ... –

+1

Это болтовня, как птицы и цыплята. –

+0

Возможный дубликат [Проверить, установлена ​​ли переменная, а затем повторять ее без повторения?] (Http://stackoverflow.com/questions/15970220/check-if-variable-is-set-and-then-echo-it-without -repeating) – user2479930

ответ

1

Вы можете сделать объявление переменной в условии, если:

if(($var = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]) !== "") { 
    echo $var; 
} 
4

Это должно работать для вас:

Просто цикл по всем показателям, которые вы хотите проверить и распечатать их, если они проходят, если заявление, например,

$indexes = ["blaBlaBlaBlaBlaBlaBlaBlaBlaBla", "evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla", "stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 

foreach($indexes as $key) { 
    if($abcdefg[$key] !== "") { 
     echo $abcdefg[$key]; 
     break; 
    } 
} 
+1

bitWorkings ответ работал лучше всего для меня, однако с еще большим количеством клавиш это лучше. Upvote. – Blackbam

+1

'ol Riz лучше с массивами, чем я когда-либо буду ;-) –

0

насчет объявления функции для ... хммм ... functionnality?

function echoNotEmpty($s) 
{ 
    if ($s !== '') echo $s; 
} 
echoNotEmpty($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]); 
echoNotEmpty($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]); 
echoNotEmpty($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]); 

Или еще короче:

echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 
echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]; 

Я имею в виду, если вы не хотите, чтобы повторить пустую строку, и вы все еще отдаются им, кто заботится?

+1

Проблема в том, что «elseif» (возможно, две строки, которые не пусты, и нужно только второму эха). – Blackbam

+0

Ох ... Я не видел 'elseif' ... мой плохой ... – Mat

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