$a = '88';
$b = '88 8888';
echo (int)$a;
echo (int)$b;
予想通り、両方とも88を生成します。$ bの値で動作し、888888を生成するint関数への文字列があるかどうかは誰でもわかりますか?私は少し運が悪かった。
ありがとう
int
にキャストする前にスペースを削除できます。
(int)str_replace(' ', '', $b);
また、一般的に使用される他の数字区切り文字(,
)、関数に配列を指定できます(ただし、一部の国では、たとえば私のように、カンマは分数表記に使用されます)。
(int)str_replace(array(' ', ','), '', $b);
数字だけを残したい場合は、(int)preg_replace( "/ [^\d] + /"、 ""、$ b)のようなpreg_replaceを使用します。
空白文字を置き換えてから変換します(intval関数を使用するか、通常の型キャストによって)
intval(str_replace(" ", "", $b))
結果を何にしたいのでしょうか? 888888?その場合は、str_replace
でスペースを削除してから変換します。
そのように変数$ bを宣言するとき、str_replace
を使用できます。
$b = str_replace(" ", "", '88 8888');
echo (int)$b;
または、最も美しい解決策はintvalを使用することです:
$b = intval(str_replace(" ", "", '88 8888');
echo $b;
値「88 888」が他の変数からのものである場合、「88 888」を文字列を含む変数に置き換えるだけです。
つかいます str_replace
最初にスペースを削除するには?