如何在函数本身中输出函数的参数

时间:2013-12-15 13:29:57

标签: php

<?php


$l = 4000;

function flip($h, $t)
{

    if ($h + $t <= 29) {
        $a = mt_rand(0, 1);
        if ($a == 1) {
            flip($h + 1, $t);
        } else {
            flip($h, $t + 1);
        }

    } else {

        echo "$h,$t" . "</br>";
    }

}

$ar = array( "test");


for ($i = 0; $i <= $l; $i++) {
    array_push($ar, flip(0, 0));
}


?>

我的代码应该在旋转30次时给出尾部和头部的数量。这个过程完成了4000次。我想使用上面的代码将4000次的所有结果存储在一个数组中。但我认为我通过翻转定义的方式是错误的。我不知道如何在完成后存储翻转参数的值,因此我使用了回声。

当我运行此代码时...由于某种原因,它打印出所有答案:http://searchr.us/testing/ip.php而不是仅仅制作一个数组。我有针脚指出我采取翻转错误的vfilanl值的方式。有人能告诉我 echo 打印之间的差异以及我如何使用return。当我只使用return(); echo.It给我一个错误。

请澄清我对如何输出这些值的疑问。

1 个答案:

答案 0 :(得分:0)

你应该使用这样的东西:

<?php

function flip($h, $t)
{

    if ($h + $t > 29) return $h . ',' . $t;
    $a = mt_rand(0, 1);
    return $a == 1 ? flip($h + 1, $t) : flip($h, $t + 1);

}

$ar = array( "test");

$l = 4000;
for ($i = 0; $i <= $l; ++$i) {
    array_push($ar, flip(0, 0));
}

?>

请注意echo输出到客户端。

但是,您希望决定在致电flip时获得的内容,而这是使用return完成的。