【发布时间】:2010-12-09 09:23:48
【问题描述】:
我有一个函数可以生成一个每次都必须唯一的 4 个字符的键。为此,该函数首先生成一个键,然后检查数据库表以查看它是否正在被其他人使用。
如果它没有被使用,它会返回键,否则,它会再次调用自己,但这会导致函数执行无限循环,这是一个禁忌。这是整个函数:
function key_generator($length = 4)
{
// I've subsequently left out the generating code,
// which is not necesarry in this case
$key = 'xxxx';
if ($this->user_model->valid_key($key) == true)
{
return $key;
}
else
{
$this->key_generator(4);
}
}
再次调用函数的正确方法是什么?
顺便说一句,我使用的是 CodeIgniter,因此是 $this。
【问题讨论】:
-
另外,$this 不是 CodeIgniter 独有的。
-
我认为他只是在解释 $this 的来源以及为什么它没有在代码 sn-p 中定义。
-
$this 用于对象/类范围。只要您的函数在一个类中并且您正在调用它,那么您必须使用 $this->functionName().. 或 self::functionName() 如果它是一个静态函数。等等等等
标签: php function codeigniter recursion