【发布时间】:2021-09-16 15:26:13
【问题描述】:
我正在做一个教师成绩簿项目,我遇到了一个奇怪的 PHP 怪癖。我如何区分''和0?我正在尝试使用运算符,但没有成功。以下是一些背景信息:
$array['grades']['brian']['project'] 将为空,因为没有为此作业输入成绩。学生的作业没有得分为零 (0),只是没有输入成绩。该数组值是使用 HTML <input value=''>
或者,$array['grades']['samuel']['homework'] 的评分为零 (0)。有一个成绩进入,它只是一个不及格的成绩。该数组值是使用 HTML <input value='0'>
我需要确定未输入成绩和输入零成绩之间的差异,以便我可以适当地更新 SQL 表。我尝试使用运算符if ($array['grades']['samuel']['homework'] === 0),但这不会触发任何事情。
我怎样才能完成这项任务?
示例数组:
Array
(
[ucid] => 4
[grades] => Array
(
[brian] => Array
(
[project] =>
[homework] => 12
)
[samuel] => Array
(
[project] => 9
[homework] => 0
)
)
)
【问题讨论】:
-
使用
===运算符。 -
$array['grades']['samuel']['homework']的数据类型是什么,使用===操作符时要确保是整数,而不是字符串 -
is_numericis_your_friend. -
@catcon 创建 Samuel 作业的 HTML 是
<input value='0'>而创建 brian 作业的 HTML 是<input value=''> -
不要使用
print_r()可视化数据,而是使用更多信息工具,例如var_export()或更好的var_dump()。