php array - 存储值0的问题

时间:2015-09-04 21:33:58

标签: php arrays

我有一个存储数值的数组。问题是当我想存储值0时: .... $ gradePoints = 0; $ students [$ var1] [$ var2] = $ gradePoints; .... 要检查已存储的值: echo $ students [$ var1] [$ var2]; 返回0 ...所以值0已成功存储在数组中。 但是后来当我搜索数组时: $ value = isset($ students [$ var1] [$ var2])? $ students [$ var1] [$ var2]:'&#39 ;; if($ value<>'') { 做一点事; } 如果$ value不是0就可以了,但是php似乎忽略了值0.如果我改变了 $ gradePoints = 0; 至 $ gradePoints = 0.1; 一切都很好。任何人都可以解释为什么$ value<> ''适用于0以外的所有值?

2 个答案:

答案 0 :(得分:3)

变化:

$value= isset($students[$var1][$var2]) ? $students[$var1][$var2] : '';

if ($value <> '')

要:

$value = isset($students[$var1][$var2]) ? $students[$var1][$var2] : false;

if ($value !== false)

当然还有其他方法可以做到这一点。想要避免比较零和空字符串的底线,它们将被评估为相同。而是使用===!==进行精确比较。

请点击此处了解详情:http://nl1.php.net/manual/en/language.operators.comparison.php

答案 1 :(得分:0)

使用此运算符(不相同,它也将检查变量的类型):

type juggling

由于{{1}}™,您遇到了问题,如下所述:http://php.net/manual/en/language.operators.comparison.php