2017-04-10 16 views
0

この問題があります。プレーンなPHPで、この機能は完全に作業し、正しい結果を返します:3進演算子処理エラーlaravel

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

OBS:時々$ cはに設定されていません。

しかし私はそれをLaravelに入れて、動作を止めて "Undefined index:"を投げます。索引表示なし。

array_search("$c", $cidades_3) 

またはこの

in_array("$c", $cidades_3) 

$ cが設定されていない場合でも、完璧に動作します:いくつかのテストを行う

は、私がこれを行う場合ことがわかりました。

いくつかの答え:

の$ cidades_3は1 $ focos_3が要求された位置に結果を返します値の配列であるインデックスから始まります。

私が働いて取得する必要があり、全体の機能はこれです:、

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) : ('')) ]) 
             ) 
      ); 
    } 

そして、はい、この質問(Laravel breaks entire app on PHP notices)への同様の問題が、そこに我々は非常にグー溶液(抑制エラー)を持っていません。

+0

これはエラー報告オプションに関連する問題のようです。これをチェックしてください:http://stackoverflow.com/questions/18497788/laravel-breaks-entire-app-on-php-notices –

+0

$ cが$ cidades_3のインデックス0に見つかったらどうなりますか?または、$ cの値が 'x'で配列に値0のエントリが含まれている場合(またはその逆) –

+0

[Laravel]はPHPの通知でアプリ全体を壊す可能性があります。(http://stackoverflow.com/questions/18497788/laravel-breaks-entire-app-on-php-notices) –

答えて

-2

は確かに、この場合には、Laravelとの警告メッセージを抑制するために簡単だった設定されています。 ここに「@」を付けるとエラーが解決しました。

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

使用している場合は、

if(isset($var){ 
//execute function 
} 
関連する問題