嗨,我正在上一个时间表课程,但我遇到了最奇怪的问题。通常我会很快弄清楚自己,但这次它完全是零意义
if 子句如下:
if($start < self::$aStoreHours[$day]['start']){
正如您在这里看到的那样,它给了我一个未定义的索引错误,这会告诉我数组键不存在所以我使用 var_dump 返回完整的数组,我得到:(我只剪掉了第一个相关部分)
array(6) { [2]=> array(2) { ["start"]=> string(3) "480" ["end"]=> string(4) "1300" }
所以键 2 确实存在,现在我转储返回的 $day 变量
string(1) "2"
好的,这给出了 2,这很奇怪,所以我认为它可能一定是一个 INT(以前从未遇到过这个问题,但在严格的语言中这很重要)所以我使用 intval 和 (int) 方法现在 PHP 在我所以这不是问题
现在对于最奇怪的部分,完整的错误是
Undefined index: 1
所以它试图告诉我,它试图调用 self::$aStoreHours[1] 但 $day 变量肯定是 2 (是的,行号是正确的,如果我在 $day 变量返回 2 之前转储它)
所以突然 $day 变量要么被忽略,但它会给出一个 null 所以不是这样,据我所知 $day 变量被更改为 1 这是数组中不存在的键,但它不会改变
更奇怪的是,代码昨天运行没有问题(它使用时间戳,所以不太奇怪)
我希望这个问题已经得到充分解释,有人可以帮助我,因为这对我来说毫无意义
注意:使用 Laravel 框架
更新:是的,它在函数范围内运行,变量不能从外部更改更大的部分代码
private static function addTime($day,$start,$end,$title){
echo $day.':'.$start.':'.$end.':'.$title.'<br>';
//Check if start isnt lower then opening time, and that end isnt past closing time
if($start < self::$aStoreHours[$day]['start']){
$start = self::$aStoreHours[$day]['start'];
}
if($end > self::$aStoreHours[$day]['end']){
$end = self::$aStoreHours[$day]['end'];
}