我有这段代码,
$salt = str_pad(rand(1, 9999999), 7, '0', STR_PAD_LEFT);
是否意味着,该数字将在1,9999999之间随机。
长度至少为7个字符。
如果rand不是7个数字,那么长的零将被添加到右边,直到它总共有7个数字?
如果这是正确的,因为我不确定如何更改此代码而不是仅插入零以使总数为7,而是生成1到9之间的随机数,并添加这些以使其成为总数7。
答案 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);