Tôi có chức năng tạo khóa gồm 4 ký tự phải là duy nhất cho mỗi lần. Để làm điều đó, hàm đầu tiên tạo ra một khóa, và sau đó kiểm tra một bảng cơ sở dữ liệu để xem nó có đang được người khác sử dụng hay không.Cách gọi một hàm bên trong chính nó?
Nếu nó không được sử dụng, nó trả về khóa, ngược lại, nó tự gọi lại, nhưng điều này làm cho hàm thực hiện một vòng lặp vô hạn, đó là một không. Đây là toàn bộ chức năng:
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);
}
}
Cách chính xác để gọi lại hàm là gì?
Nhân tiện, tôi đang sử dụng CodeIgniter, do đó $this
.
Nó được gọi là đệ quy – Makach
Ngoài ra, $ này không dành riêng cho CodeIgniter. –
Tôi nghĩ anh ta chỉ giải thích nơi $ này đến từ đâu và tại sao nó không được định nghĩa trong đoạn mã. – JAL