【发布时间】:2011-12-07 08:48:55
【问题描述】:
我有一个用户输入的数字列表。我想数一数并得到:
- 每个数字的小计(只有可能的数字是
1, 2, 3, 4, 5),以及 - 所有输入数字的总和。
见:
// Outputs the numbers , " 1 4 1 1 5 "
// for example (no commas, order is as inputed by user)
echo $a;
#1:
if ($a == "1"){
$b++;
// Outputs the actual count but in steps,
// say there are 3 "1" then it outputs: 1 2 3 ,
// but I only want the 3.
echo $b;
}
如何覆盖递增的变量?然后我就有了我想要的东西,或者我错了。有更好/更清洁的方法吗?
#2:
// outputs only a bunch of 11111
// (the right amount if i add them up)
echo count($a);
// outputs also a bunch of 111111
print strlen($a);
还有其他方法可以计算得到总数吗(不是总和,是输入数字的总数)?
我这几天一直在尝试解决这个问题。显然,我是一个初学者,我很想了解。我检查了大约 5 本书和 php 在线手册。如果有人能引导我朝着正确的方向前进,我将不胜感激。请:)
【问题讨论】:
-
This:
$a == "1"等价于:$a == 1,由于 PHP 的 type juggling。没有理由在具有这种比较类型的数字周围添加 cmets,因为您只是将其转换为带有数字的字符串,以便与另一个也将被转换的数字/字符串进行比较;在这种情况下,PHP 将使用或不使用引号进行相同的比较。但是,使用$a === "1"将首先检查变量的类型,然后进行比较,如果$a不是字符串值,则会得到不同的结果。