PHP如何在循环匹配到目标日期后终止执行并返回对应数值
问题原因
- 现有代码匹配到目标日期后没有终止执行,后续遍历到不匹配的元素时,会把存储结果的变量重新赋值为0,导致匹配成功的结果被覆盖
- 循环条件
$y <= $size_array2存在数组越界风险:PHP数组索引从0开始,有效索引的最大值为count(数组) - 1,当$y等于数组长度时会访问不存在的索引,抛出警告
修复方案
匹配到目标日期后直接返回结果即可,此时函数会直接终止执行,无需继续遍历剩余元素。全部遍历完成仍未匹配到目标时,再返回0。
修复后的代码如下:
$getTransitos = function ($datos_transito, $fechaAMostrar21){ $datos_transito_string = strval($datos_transito); $registro_a_array = explode(',', $datos_transito_string); $size_array2 = count($registro_a_array); $y = 0; while ($y < $size_array2) { if (str_contains($registro_a_array[$y], $fechaAMostrar21)) { $tra_cantidad_ex = explode('/', $registro_a_array[$y]); return intval($tra_cantidad_ex[0]); } $y++; } return 0; };
内容的提问来源于stack exchange,提问作者Myers
相关产品推荐
相关产品推荐

