PHP从文件读取并添加一个
假设我有一个文件foo.txt,其中有一个数字是0。 然后我读取该文件并将0存储到数组中。我想将数字增加1,所以我只使用速记运算符PHP从文件读取并添加一个,php,string,file,operators,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”,但为什么它不适用于++?在使用隐式类型转换的语言中遇到了一个常见错误。
++
,但它不起作用,而+=
起作用
$poo = file("foo.txt");
$poo[0]++;
echo $poo; // gives me 0
$poo[0] += 1;
echo $poo; // gives me 1
我知道,当我读取
poo[0]
的文件值时,它是带空格的字符串“0”
,但为什么它不适用于++
?在使用隐式类型转换的语言中遇到了一个常见错误。当您将foo.txt的内容读入$poo时,该值存储为字符串
当您告诉PHP使用++
递增字符串时,PHP必须尝试确定您的意思$poo
包含一个字符串(不是数字),因此PHP不知道要添加0+1的值;相反,它认为您正在尝试执行字符串操作,并提供了意外的结果
在第二种情况下,隐式类型指出,由于在等式的右侧使用整数(而不是字符串),因此必须将左侧也转换为整数
为了安全起见,您应该明确地告诉PHP解释器您正在尝试对两个数字执行数学运算:
$poo[0] = (int)$poo[0] + 1;
有关更多信息,请参阅