2017-04-10 107 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 
}