Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在一定的时间内运行代码_Php - Fatal编程技术网

Php 如何在一定的时间内运行代码

Php 如何在一定的时间内运行代码,php,Php,在我的脚本中,我希望在特定的时间内运行特定的代码,我查看了StackOverflow,发现下面的代码。它有33%的时间运行代码,我需要修改什么才能让它有55%和70%的时间运行 $max = 27; for($i = 1; $i < $max; $i++){ if($i % 3 == 0){ call_function_here(); } } $max=27; 对于($i=1;$i

在我的脚本中,我希望在特定的时间内运行特定的代码,我查看了StackOverflow,发现下面的代码。它有33%的时间运行代码,我需要修改什么才能让它有55%和70%的时间运行

$max = 27;

for($i = 1; $i < $max; $i++){
if($i % 3 == 0){
        call_function_here();
    }
}
$max=27;
对于($i=1;$i<$max;$i++){
如果($i%3==0){
在此处调用函数;
}
}

由于所选金额必须为常量,因此可以执行以下操作:

$max = 27;
$num_selections = round(27 * (55 / 100));
$keys = array_rand($max, $num_selections);
for ($keys as $key) {
    // Do something with the chosen key
}

最简单的方法是使用随机数生成器并测试其结果是否小于(或大于,无所谓)您的目标数量

function percentChance($chance){
  // Notice we go from 0-99 - therefore a 100% $chance is always larger
  $randPercent = mt_rand(0,99);
  return $chance > $randPercent;
}

...

if(percentChance(30)){
  // 30% of page loads will enter this block
}

if(percentChance(100)){
  // All page loads will enter this block
}

if(percentChance(0)){
  // No chance this block will ever be entered
}

如果我可能会问,你为什么要这样做?就像我需要不同的东西在奖励系统中显示一定的次数一样,它可以显示促销代码等。如果使用随机数生成,则限制无效?或者我想你可以四舍五入:)随机数生成器只在生成数字的瞬间是随机的。也就是说,如果你生成一个随机数10次,你每次都可能得到4,就像你每次得到1 2 3 4 5 6 7 8 9 10一样。因此,您不能依赖您的随机数生成器来执行类似的操作。实际上,根据用户ID%100给用户一张优惠券更可靠,以获得他想要的百分比,伪随机。什么?我的头掉下来了吗?:)如果你听说过一种叫做赌徒谬论的东西,它明确地说明了为什么随机数生成会起作用。在任何给定的时间,我都会从1-10个随机列表中进行选择。我将有10%的机会获得我选择的号码。所以,如果我想要30%的变化,我可以只允许3个数字,而不考虑前面的数字。