三元运算符处理错误laravel

时间:2017-04-10 12:51:05

标签: php arrays laravel ternary-operator

我有这个问题。在普通的PHP中,这个函数运行正常并返回正确的结果:

$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),但我们没有很好的解决方案(抑制错误)。

2 个答案:

答案 0 :(得分:0)

使用if设置

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

答案 1 :(得分:-2)

实际上,在这种情况下,使用Laravel更容易抑制警告信息。 在这里设置'@'解决了错误。

allprojects {
   repositories {
    maven { url "https://jitpack.io" }
  }
}