PHP의 재귀 함수 내에서 반환 활용
PHP에서 재귀 함수는 복잡한 문제를 해결하는 강력한 도구가 될 수 있습니다. 재귀 함수를 작성할 때 올바른 논리를 보장하고 무한 루프를 방지하려면 return 문을 적절하게 활용하는 것이 중요합니다.
이러한 활용이 일반적으로 간과되는 경우는 다음 시나리오에 예시된 것처럼 고유한 값을 생성할 때입니다.
질문:
목표는 데이터베이스에 아직 없는 임의의 바코드를 생성하는 것입니다. 열. 이 함수는 재귀를 사용하여 고유한 숫자를 찾을 때까지 반복적으로 숫자를 생성합니다. 그러나 이 함수는 고유 번호를 생성하는 대신 "설정되지 않음"을 반환하는 경우도 있습니다.
코드:
function generate_barcode() { $barcode = rand(1, 10); $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'")); if ($bquery == 1) { generate_barcode(); } else { return $barcode; } }
답변:
제공된 코드의 문제는 재귀 호출에 있습니다. 함수가 고유 번호를 올바르게 반환하는지 확인하려면 새로 생성된 번호가 재귀 호출 자체에서 반환되어야 합니다.
function generate_barcode() { $barcode = rand(1, 10); $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'")); if ($bquery == 1) { return generate_barcode(); // updated } else { return $barcode; } }
재귀 호출에서 생성된 번호를 반환함으로써 함수는 호출자가 고유번호를 받습니다.
추가 고려사항:
필수 모든 숫자를 취하는 경우의 종료 조건. 그러한 조건이 없으면 PHP 재귀 제한에 도달할 때까지 함수가 재귀적으로 호출되어 오류가 발생합니다.
위 내용은 내 재귀 PHP 함수가 때때로 고유 바코드 대신 '설정되지 않음'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!