PHP从文件中读取并添加一个

时间:2011-11-17 20:58:51

标签: php string file operators

我们说我有文件foo.txt,其中我有一个数字是0。 然后我读取该文件,并将0存储到数组中。我想将数字增加1,所以我只使用速记运算符++,但它不起作用+=

$poo = file("foo.txt");
$poo[0]++;
echo $poo; // gives me 0
$poo[0] += 1;
echo $poo; // gives me 1

我知道,当我读取poo[0]的文件值为空格"0 "的字符串,但为什么它不能与++一起使用?

1 个答案:

答案 0 :(得分:2)

您在使用隐式类型转换的语言中遇到了常见错误。当您将foo.txt的内容读入$ poo时,该值将存储为字符串。

当你告诉PHP使用++增加字符串时,PHP必须尝试确定你的意思。 $poo包含一个字符串(不是数字),因此PHP不知道您要添加0 + 1的值;相反,它认为您正在尝试执行字符串操作并提供意外结果。

在第二种情况下,隐式输入表明,由于您在等式的右侧使用整数(不是字符串),因此您必须将左侧转换为整数。

为安全起见,您应该明确告诉PHP解释器您正在尝试对两个数字执行数学运算:

$poo[0] = (int)$poo[0] + 1;

有关详细信息,请参阅PHP: Type Juggling