字符串填充,数字是什么意思?

时间:2011-04-22 00:36:51

标签: php string

我有这段代码,

$salt = str_pad(rand(1, 9999999), 7, '0', STR_PAD_LEFT);

是否意味着,该数字将在1,9999999之间随机。

长度至少为7个字符。

如果rand不是7个数字,那么长的零将被添加到右边,直到它总共有7个数字?

如果这是正确的,因为我不确定如何更改此代码而不是仅插入零以使总数为7,而是生成1到9之间的随机数,并添加这些以使其成为总数7。

3 个答案:

答案 0 :(得分:2)

是的,我相信您的解释是准确的。

我不打扰改变它;使填充数字随机不会使你的数字更随机。事实上,如果有的话,你会扭曲分布,使得较低的数字的可能性大大降低。

答案 1 :(得分:1)

$salt = str_pad(rand(1, 9999999), 7, rand(1, 9), STR_PAD_LEFT);

不是将0传递给pad,而只是传递一个从1到9的随机数。

答案 2 :(得分:1)

您的理解基本上是正确的。它会给你一个从1到9999999的随机数,然后给你一个字符串表示,左边是零填充。

如果您只想要一个7位数的随机数,请使用:

rand(1000000,9999999)

如果你想要一个特定的非零数字用它填充(所有数字都相同),用rand(1,9)随机生成一个并使用它,沿着以下几行:

$salt = str_pad(rand(1, 9999999), 7, <your random character here>, STR_PAD_LEFT);