PHPでは、どのように私は、ゼロ詰め数値文字列に追加して、ゼロパディングを維持するのですか?

StackOverflow https://stackoverflow.com/questions/718229

質問

私は0001を含むPHPで変数を持っており、私はそれに1を追加した場合、

、結果は2の代わり0002である。

どのように私はこの問題を解決するのですか?

役に立ちましたか?

解決

$foo = sprintf('%04d', $foo + 1);

他のヒント

これはおそらく、あなたは、様々なタイプの変数に操作を行うときに、PHPのデータ型とそれらがどのように影響を受けているを理解するのに役立つだろう。あなたは、「PHPで変数が0001を言う」を持っていると言うが、その変数がどのようなタイプですか?整数は、その値を持つことができないので、おそらく文字列、「0001」、(それだけで1です)。だから、あなたがこれを行うときます:

echo ("0001" + 1);

... +演算子はフム、それは文字列と整数のだ」、と言います。そして、私は、文字列とint型を追加する方法を知りません。しかし、私はint型に文字列を変換する方法を知っていますし、 1.なぜに 『0001「、それは変換し、その後と』一緒に2つのintを追加し、ので、私はそれをやらせますか、?文字列を整数に変換するためのPHP規則は文字列内の先行ゼロの数が廃棄されることを言うため。これは、文字列 "0001" が1になることを意味します。

次に+は「ねえ、私はそれが2だ1と1を追加する方法を知っている!」、と言いますそしてその文の出力は2です。

別のオプションは、 str_pad()の関数である。

$text = str_pad($text, 4, '0', STR_PAD_LEFT);
<?php
#how many chars will be in the string
$fill = 6;
#the number
$number = 56;
#with str_pad function the zeros will be added
echo str_pad($number, $fill, '0', STR_PAD_LEFT);
// The result: 000056
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top