递归函数不返回

oz
<?php

function generateRandomString($length = 10, $alpha = false, $numeric = false) {

  if ($alpha)   { $characters = 'ABCDEFGHJKLMNPQRSTUVWXYZ'; }
  if ($numeric) { $characters = '0123456789'; }

  $charactersLength = strlen($characters);
  $randomString = '';

  for ($i = 0; $i < $length; ++$i) {
    $randomString .= $characters[rand(0, $charactersLength - 1)];
  }

  if (substr($randomString, 0, 1) != 2) { // if doesn't start with 2
    generateRandomString($length, $alpha, $numeric); // try again
  }
  else {
    return $randomString;
  }
}

$num = generateRandomString(8, false, true);
echo ($num);

我需要它以开头的值返回,2但它根本不返回任何东西,也没有错误。我在这里做错了什么?

无人机

在这里使用return,更改此

if (substr($randomString, 0, 1) != 2) { // if doesn't start with 2
  generateRandomString($length, $alpha, $numeric); // try again
}

if (substr($randomString, 0, 1) != 2) { // if doesn't start with 2
 return generateRandomString($length, $alpha, $numeric); // try again
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章