0

解決しなければならない問題があります。

私は連想配列を持っています、例えば:

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

どうもありがとう。

4

3 に答える 3

3

ほんの小さなポイント:だけでなく==、で使用する必要があります。if=

それはさておき、JavaScriptの場合のように問題ではありません。JSでは、a = "1"; b = "2"; alert(a+b)を取得12しますが、PHPでは、+数値を期待するため、3を取得します。

PHPの型強制は、ほとんどすべての問題をそれ自体で解決するため、通常、特定の型を指定する必要はありません。

于 2012-11-09T14:34:59.383 に答える
2

まあ、それテキストファイルから来た文字列であり、テキストファイルには「タイプ」はありません。テキスト値をより適切なデータ型に強制変換する場合は、それらがどのタイプに最も適しているかをテストする必要があります。int何かが使用に適しているかどうかを確認し、適しているctype_digit場合はキャストする必要があります。

実際には、文字列は数学演算でも完全に機能しますが、PHPは必要に応じて自動的に文字列を数値にキャストします。

于 2012-11-09T14:36:44.030 に答える
1

数値である文字列値を数値変数に変換するかどうかを知っています。

intval($myvar);
于 2012-11-09T14:33:49.997 に答える