2017-11-24 8 views
0

Ich habe einen einfachen "wenn" Code, was funktioniert. In "array" funktioniert es aber bekommt den Fehler "Undefined offset:". Was ist falsch?"Wenn" funktioniert, aber in "Array" funktioniert es nicht

Code, was funktioniert:

if (file_exists(glob($root . '/*/E0622.pdf')[0])) { 
    echo str_replace($root . '/', '', glob($root . '/*/E0622.pdf')[0]) ; 
} else {  
    echo 'x.pdf - no-no-no!' ;} 

aber in Array wird "Fehler analysieren: Syntaxfehler, unerwartete 'if' (T_IF) in":

'E0622' => 'E0622' . if (file_exists(glob($root . '/*/E0622.pdf')[0])) { 
    echo str_replace($root . '/', '', glob($root . '/*/E0622.pdf')[0]) 
} else {  
    echo 'x.pdf - no-no-no!' } , 

Was falsch ist? Tnx!

+0

Was genau versuchen Sie zu erreichen? – Kathara

+0

Sie versuchen, eine Zeichenfolge zu 'E0622' hinzuzufügen, aber stattdessen folgt ein wenn, natürlich funktioniert das nicht ... – Kathara

+0

versuchen Sie ein Array mit einer Bedingung Anweisung darin zu erstellen? –

Antwort

2

Das Konstrukt if in PHP ist kein Ausdruck und kann nicht in einer Verkettung verwendet werden.

Sie müssen Ihre Struktur ändern, um eine Variable auf die Sache, die Sie verketten wollen, zuerst zu setzen und dann diese Variable der Zeichenfolge hinzuzufügen.

4

Die Anweisung if selbst kann nicht so verwendet werden, wie Sie es versuchen.

Es existiert jedoch eine Anweisung. Es wird für Fälle wie Ihres eingeführt.

Es sieht so aus: conditional-expression ? value-when-true : value-when-false. Dies ist ein Ausdruck, also können Sie ihn überall einfügen, wo Sie einen anderen Ausdruck einfügen würden.

$var = 7; 
echo ($var == 7 ? "Var is seven" : "Var is not seven"); 
// Those parentheses are optional, but I added them for clarity. 

Es hallt "Var ist sieben".

Dies funktioniert:

'E0622' => 'E0622' . (file_exists(glob($root . '/*/E0622.pdf')[0]) ? str_replace($root . '/', '', glob($root . '/*/E0622.pdf')[0]) : 'x.pdf - no-no-no!'), 

PS: Während Sie nisten so viele Kurz Hand kann if-else-Anweisungen, wie Sie wollen, können die Dinge beginnen, wirklich chaotisch zu bekommen:

$a = 1 == 1 ? 2 == 2 ? 3 == 4 ? 9 : 8 == 8 ? 1 : 2 : 7 : 6; 
Verwandte Themen