Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从文件读取并添加一个_Php_String_File_Operators - Fatal编程技术网

PHP从文件读取并添加一个

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”,但为什么它不适用于++?在使用隐式类型转换的语言中遇到了一个常见错误。

假设我有一个文件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”
,但为什么它不适用于
++

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

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

在第二种情况下,隐式类型指出,由于在等式的右侧使用整数(而不是字符串),因此必须将左侧也转换为整数

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

$poo[0] = (int)$poo[0] + 1;
有关更多信息,请参阅