2017-04-10 138 views
0

我有這個問題。在純PHP,此功能可以正常使用,並返回正確的結果:三元運算符處理錯誤laravel

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

OBS:有時$ c未設置。

但是,當我把它放在Laravel停止工作,並拋出我「未定義的索引:」。沒有索引指示。

做一些測試,我發現,如果我這樣做:完美

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

如果在$ cidades_3的索引0處找到$ c,應該發生什麼?或者如果$ 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 
}