php – 如何调用自身内部的函数?
发布时间:2020-12-13 13:20:00 所属栏目:PHP教程 来源:网络整理
导读:我有一个函数生成一个4个字符的键,每次都必须是唯一的.为此,该函数首先生成一个密钥,然后检查数据库表以查看其他人是否正在使用它. 如果它没有被使用,它返回键,否则,它再次调用自身,但这会导致函数执行无限循环,这是禁止的.这是整个功能: function key_gene
我有一个函数生成一个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.
我不会将recursive函数用于重试场景(因为你没有重用函数的结果,使用递归是没有意义的)……它增加了很多不必要的开销.做这样的事情:
do { $key = ...; // Generate your key here... } while (!$this->user_model->valid_key($key)); return $key; 如果您接近最大键数,这将导致非常长的循环时间,因此您可能需要设置某种最大限制. 哦,如果同时在多个线程上发生并且您正在检查数据库,则应该实现表写锁定,以便不能插入相同的键两次.优选地,检查密钥是否可用的功能应该锁定,检查并且如果可用则写入相同的事务以避免任何冲突. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |