2016-12-14 2 views
1

Gibt es eine Möglichkeit, diese Funktion/ausführbare Datei zu kodieren ..Vereinfachte Anarchie „if-Anweisung“

if($img1 > "") 
{ 
$show = $img1; 
} 
elseif($img2 > "") 
{ 
$show = $img2; 
} 
elseif($img3 > "") 
{ 
$show = $img3; 
} 
else 
{ 
$show = 'default.jpg'; 
} 
echo $show; 

..in eine einfachere Art und Weise? Danke.

+0

Ja .... da ist. Verwenden Sie einen 'Schalter' –

+0

@JayBlanchard Bitte, erzählen Sie. –

+0

Meinst du das, 'if (imgX! =" ") {...'? –

Antwort

2

Jedes Mal, wenn Variablen 1,2,3 Namen am Ende mit, etc es bedeutet, sollten Sie ein verwenden Array.

Wenn Sie es so hatte zum Beispiel:

$img = [ 
1=> '', 
2=> '', 
3=> 'image.jpg' 
]; 

Sie könnten dann diesen Prozess wie folgt:

// Remove empty values 
$img = array_filter($img); 
// Echo the first value found (image.jpg) 
echo current($img); 

Oder Ihr Standard hinzuzufügen:

echo (count($img)) ? current($img) : 'default.jpg'; 

Diese verwendet einen ternären Operator zum Echo 'default.jpg', wenn count($img) 0 ist.

tun nur
0

nicht getestet, aber das so etwas wie:

<?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; 

Keine Ahnung, was Sie versuchen, oder zu erreichen, warum der Code so aussieht, scheint schlecht aus der get-go gebaut.

+1

schließen, aber Sie brauchen etwas wie '$ {" img ". $ I}'. –

+0

Dank @ JonathanKuhn behoben, das ist hässlicher Code, OP sollte einen besseren Weg finden. – systematical

+0

Ich weiß, es ist schlecht konstruiert, warum ich diese Frage gestellt habe. Was ich jetzt erreichen will, erkläre ich in der Hauptfrage. –

0

Wenn Sie die ID-Nummer des Bildes kennen, könnten Sie so etwas tun:

<?php 
$images = array(
'myimg.jpg', 
'my_awesome_img.jpg', 
'awesome_awesome.jpg' 
); 

$show = $images[$x]; 
?> 
+1

Wenn sie die Indexnummer kennen, würden sie wissen, welches $ imgX angezeigt werden soll. Was sie zu tun versuchen, ist den Index zu finden (der in diesem Fall dasselbe ist wie das unbekannte 'X' in ihrer Variablen). –

0

können Sie

if(!empty($img1)) { 
    echo $img1; 
} elseif(!empty($img2)) { 
    echo $img2; 
} elseif(!empty($img3)) { 
    echo $img3; 
} else { 
    echo 'default.jpg'; 
} 

gegeben, dass Sie immer nur wollen eine davon angezeigt werden soll.

+0

Wie ist das anders oder prägnant als der aktuelle Code? Sowohl $ img1> ''als auch'! Empty ($ img1) 'würden true zurückgeben, wenn die Zeichenfolge nicht leer ist. Sie fragen nach einem besseren Weg, es zu tun, nicht das Gleiche. –

Verwandte Themen