2017-04-10 3 views
0

Ich habe dieses Problem. Im Klar PHP, arbeitet diese Funktion perfekt und liefert korrektes Ergebnis:ternären Operator Verarbeitungsfehler Laravel

$focos_3[ (array_search("$c", $cidades_3) ? array_search("$c", $cidades_3) : ('')) ] 

OBS: manchmal $ c nicht gesetzt.

Aber wenn ich es in Laravel setze es funktioniert nicht mehr und wirft mir "Undefined Index:". Ohne Indexanzeige.

einige Tests, fand ich, dass, wenn ich dies tun:

array_search("$c", $cidades_3) 

oder dieses

in_array("$c", $cidades_3) 

funktioniert perfekt, auch wenn $ c nicht gesetzt ist.

Einige Antworten:

$ cidades_3 beginnt bei Index 1 $ focos_3 ist Array von Werten, die ein Ergebnis auf Position zurückkehren, die angefordert wurde.

Die ganze Funktion, die ich brauche zum Laufen zu bringen, ist dies:

foreach ($cidades as $c) 
    { 
     $registros = array(
      "Estado" => $estados[$c], 
      "Municipio" => $c, 
      "tres_dias" => $focos_3[ (array_search("$c", $cidades_3) >=0 ? array_search("$c", $cidades_3) : ('')) ], 
      "dois_dias" => $focos_2[ (array_search("$c", $cidades_2) >=0 ? array_search("$c", $cidades_2) : ('')) ], 
      "um_dia" => $focos_1[ (array_search("$c", $cidades_1) >=0 ? array_search("$c", $cidades_1) : ('')) ], 
      "total"  => (
             ($focos_3[ (array_search("$c", $cidades_3) >=0 ? array_search("$c", $cidades_3) : ('')) ]) + 
             ($focos_2[ (array_search("$c", $cidades_2) >=0 ? array_search("$c", $cidades_2) : ('')) ]) + 
             ($focos_1[ (array_search("$c", $cidades_1) >=0 ? array_search("$c", $cidades_1) : ('')) ]) 
             ) 
      ); 
    } 

Und ja, sein ähnliches Problem auf diese Frage (Laravel breaks entire app on PHP notices), aber da haben wir nicht sehr goo-Lösung (Unterdrückung Fehler).

+0

Dies scheint ein Problem im Zusammenhang mit Fehlerberichtsoptionen zu sein. Sieh dir das an: http://stackoverflow.com/questions/18497788/laravel-breaks-entire-app-on-php-notices –

+0

Was passiert, wenn $ c im Index 0 in $ cidades_3 gefunden wird? Oder wenn der Wert von $ c 'x' ist und das Array einen Eintrag mit dem Wert 0 enthält (oder umgekehrt)? –

+0

Mögliches Duplikat von [Laravel bricht die gesamte App auf PHP-Hinweisen] (http://stackoverflow.com/questions/18497788/laravel-breaks-entire-app-on-php-notices) –

Antwort

-2

der Tat, in diesem Fall war es einfacher Warnmeldung mit Laravel zu unterdrücken. Das Setzen eines '@' löste Fehler.

foreach ($cidades as $c) 
{ 
    @$registros = array(
     "Estado" => $estados[$c], 
     "Municipio" => $c, 
     "tres_dias" => $focos_3[ (array_search("$c", $cidades_3) >=0 ? array_search("$c", $cidades_3) : ('')) ], 
     "dois_dias" => $focos_2[ (array_search("$c", $cidades_2) >=0 ? array_search("$c", $cidades_2) : ('')) ], 
     "um_dia" => $focos_1[ (array_search("$c", $cidades_1) >=0 ? array_search("$c", $cidades_1) : ('')) ], 
     "total"  => (
            ($focos_3[ (array_search("$c", $cidades_3) >=0 ? array_search("$c", $cidades_3) : ('')) ]) + 
            ($focos_2[ (array_search("$c", $cidades_2) >=0 ? array_search("$c", $cidades_2) : ('')) ]) + 
            ($focos_1[ (array_search("$c", $cidades_1) >=0 ? array_search("$c", $cidades_1) : ('')) ]) 
            ) 
     ); 
} 
0

Verwendung, wenn gesetzt

if(isset($var){ 
//execute function 
} 
Verwandte Themen