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*字符串。