三元运算符处理错误 laravel
ternary operator processing error laravel
我有这个问题。在普通 PHP 中,此函数运行完美并且 return 的正确结果:
$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 是值数组,将 return 所请求位置的结果。
我需要开始工作的整个函数是这样的:
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),但是我们没有很好的解决方案(抑制错误)。
如果已设置则使用
if(isset($var){
//execute function
}
确实,在这种情况下,使用 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) : ('') ) ])
)
);
}
我有这个问题。在普通 PHP 中,此函数运行完美并且 return 的正确结果:
$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 是值数组,将 return 所请求位置的结果。
我需要开始工作的整个函数是这样的:
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),但是我们没有很好的解决方案(抑制错误)。
如果已设置则使用
if(isset($var){
//execute function
}
确实,在这种情况下,使用 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) : ('') ) ])
)
);
}