Php 保留变量类型?

Php 保留变量类型?,php,variables,types,Php,Variables,Types,我有个问题需要解决 我有一个关联数组,例如: private $formData = [ "lastPrintedNumber" => 0, ]; 我使用函数从文本文件中获取此数据…: $line = fgets( $formDataFile ); $explodedLine = explode( ' ', $linea ); $this->formData[ 'lastPrintedNumber' ] = (int) $explodedLine[2]; 它将正确的类型int分配

我有个问题需要解决

我有一个关联数组,例如:

private $formData = [
"lastPrintedNumber" => 0,
];
我使用函数从文本文件中获取此数据…:

$line = fgets( $formDataFile );
$explodedLine = explode( ' ', $linea );
$this->formData[ 'lastPrintedNumber' ] = (int) $explodedLine[2];
它将正确的类型
int
分配给$formData[lastPrintdNumber]

但是我不想硬编码赋值,相反,我想做一个
foreach
,在数组中寻找正确的数据

例如:

$line = fgets( $formDataFile ) ) != false ) {
$explodedLine = explode( ' ', $linea );
foreach( $this->formDatos as $key => $value ) {
    if( $explodedLine[0] == $key ) {
        $this->formData[ $key ] = $value;
    }
}
问题是它将值赋值为
string
,在某些情况下,我需要
int
进行数学运算

因此,我需要一种方法将
formData['lastPrintedNumber']
的数据类型设置为始终为
int


非常感谢。

您知道,如果要将作为数字的字符串值转换为数字变量,请使用

intval($myvar);

你知道如果你想把一个字符串值转换成一个数字变量

intval($myvar);

只是一个小问题:您应该在
if
中使用
=
,而不仅仅是
=

撇开这一点不谈,它不像JavaScript中那样重要。在JS中,如果您有
a=“1”;b=“2”;警报(a+b)
会得到
12
,但在PHP中会得到3,因为
+
需要数字


PHP的类型强制几乎可以自行解决所有问题,因此通常不需要指定特定的类型。

只是一个小问题:您应该在
if
中使用
=
,而不仅仅是
=

撇开这一点不谈,它不像JavaScript中那样重要。在JS中,如果您有
a=“1”;b=“2”;警报(a+b)
会得到
12
,但在PHP中会得到3,因为
+
需要数字

PHP的类型强制几乎可以自行解决所有问题,因此通常不需要指定特定的类型。

嗯,它是来自文本文件的字符串,文本文件中没有“类型”。如果要将文本值强制转换为更合适的数据类型,则需要测试它们最适合的类型。您应该检查某物是否适合使用
int
,如果是,则将其转换为int

实际上,字符串在数学运算中也可以很好地工作,PHP会在必要时自动将其转换为数字。

嗯,它是来自文本文件的字符串,文本文件中没有“类型”。如果要将文本值强制转换为更合适的数据类型,则需要测试它们最适合的类型。您应该检查某物是否适合使用
int
,如果是,则将其转换为int


实际上,对于数学运算来说,字符串也可以很好地工作,PHP将在必要时自动将其转换为数字。

PHP将根据需要在字符串/int之间自动转换
$x=7*'3'
仍然是
21
,即使它是int*string.PHP将根据需要在string/int之间自动转换
$x=7*“3”
仍然是
21
,即使它是int*字符串。