有沒有辦法實現代碼函數/可執行..簡化無政府狀態「if語句」
if($img1 > "")
{
$show = $img1;
}
elseif($img2 > "")
{
$show = $img2;
}
elseif($img3 > "")
{
$show = $img3;
}
else
{
$show = 'default.jpg';
}
echo $show;
..in一個更簡單的方法?謝謝。
有沒有辦法實現代碼函數/可執行..簡化無政府狀態「if語句」
if($img1 > "")
{
$show = $img1;
}
elseif($img2 > "")
{
$show = $img2;
}
elseif($img3 > "")
{
$show = $img3;
}
else
{
$show = 'default.jpg';
}
echo $show;
..in一個更簡單的方法?謝謝。
你最終使用名爲1,2,3等這意味着你應該使用一個變量,任何時候陣列。
你如果有這樣的,例如:
$img = [
1=> '',
2=> '',
3=> 'image.jpg'
];
然後,您可以像這樣處理的:
// Remove empty values
$img = array_filter($img);
// Echo the first value found (image.jpg)
echo current($img);
或添加默認:
echo (count($img)) ? current($img) : 'default.jpg';
這如果count($img)
爲0,則使用三元運算符來回顯'default.jpg'。
沒有測試,但是這樣的事情:
<?php
$img1 = 'hello';
$img2 = 'world';
$array = [1,2,3];
for($i=1; $i<count($array); $i++){
$v = ${"img{$i}"};
if(!empty($v)){
$show = $v;
break;
}
}
echo $show;
不知道你要完成或爲什麼代碼看起來像,似乎從結構不佳得到什麼去。
關閉,但你需要''{「img」。$ i}''。 –
謝謝@JonathanKuhn修復,這是難看的代碼,OP應該找到更好的方法。 – systematical
我知道它的構造很糟糕,那是爲什麼我問這個問題。我現在想要達到的目標,我將在主要問題中解釋。 –
如果您知道圖像的ID號,你可以做這樣的事情:
<?php
$images = array(
'myimg.jpg',
'my_awesome_img.jpg',
'awesome_awesome.jpg'
);
$show = $images[$x];
?>
如果他們知道索引號,他們會知道要顯示哪個'$ imgX'。他們試圖做的是找到索引(在這種情況下,它與變量中未知的'X'相同)。 –
你可以做
if(!empty($img1)) {
echo $img1;
} elseif(!empty($img2)) {
echo $img2;
} elseif(!empty($img3)) {
echo $img3;
} else {
echo 'default.jpg';
}
因爲您只想顯示其中之一。
這與現在的代碼有什麼不同或簡潔?如果字符串不爲空,'$ img1>'''和'!empty($ img1)'都將返回true。他們正在尋求一種更好的方式去做,而不是一樣的。 –
是的....有。使用'switch' –
@JayBlanchard請告訴。 –
你的意思是說,'if(imgX!=「」){...'? –