【发布时间】:2021-07-14 06:10:36
【问题描述】:
我有一个非常简单的 php 代码,它会根据时间回显特定的数字,但它总是指出 case 09 是问题所在。这是我的代码:
<?php
$hour = date('H');
switch ($hour) {
//Midnight
case 00:
echo '1';
// 3 AM
case 03:
echo '2';
// 6 AM
case 06:
echo '3';
// 9 AM
case 09:
echo '4';
// Mid-day
case 12:
echo '5';
// 3 PM
case 15:
echo '6';
// 6 PM
case 18:
echo '7';
// 9 PM
case 21:
echo '8';
}
错误:PHP Parse error: Invalid numeric literal in line 17
λ php -version
PHP 7.4.16 (cli) (built: Mar 2 2021 14:06:13) ( NTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
这是一个错误吗?
【问题讨论】:
-
当数字以前导零开头时,PHP 将其解释为八进制表示法。
-
有什么解决方法吗?时间以整数形式给出,当我将大小写放在“..”中时,它会将其视为字符串..
-
另外,考虑使用关联数组,而不是巨大的
switch/case。 -
不,时间以字符串形式给出。
-
现在是凌晨 4 点,使用 $hour = date('H');它会输出= 04。从我的代码中,它应该回显数字 2。没有回显
标签: php