【PHP】귀속 함수

8213 단어 역귀함수PHP
이 글은'YYPHP Advent Calendar 2018'의 13일째 조목이다.
이것은 졸렬한 문장이니 잘 부탁드립니다(´)ω` )앵무새
처음에는 클라스 인터내셔널 트레이트에 대한 요약 기사를 기고하려고 했는데 :: 방문 주변을 조사해보니'아아아아?'따라서 귀속 함수에 대한 보고서를 대폭 바꾸었다.

개시하다


이 글은 함수를 이해하는 기본적인 기술 방법을 대상으로 한다.
회귀함수라는 글자만 보면 힘들겠지만 냉정하게 하나하나 보면 이해할 수 있다.
나 자신은 아직 성숙하지 않아서 잘못이 있을 수도 있다는 것을 설명한다.
오류가 있으면 ((\)ω` )앵무새

역귀함수


복귀라는 단어는'다시 돌아와','다시 돌아와'라는 뜻이다.
이른바 귀속함수란 말 그대로 자신이 집행하는 함수를 반복적으로 호출하는 것이다.
자기를 불러내는 게 어떻게 된 거예요?그렇게 생각하는 사람도 있을 것 같아서요.
귀속 함수를 가장 작은 기술로 쓰면 다음과 같다.
잡다한 귀속 함수에 대한 기술 (모방하지 마세요)
<?php
function abc($args) {
    return abc($args -1); //abc 関数内で abc 関数を呼び出している
}
abc 함수에서 함수abc를 호출한다.
귀속 함수는 특수한 문법이 아니라 단지 같은 함수를 간단하게 묘사할 뿐이다.
이렇게 자신의 함수를 호출하는 것을 귀속 함수라고 부른다.
잠시 후 상세히 설명하겠습니다. 위의 코드는 무한 순환 코드입니다. 시도하지 마세요.
실례를 보면서 회귀 함수에 대한 이해를 깊이 있게 하세요.
이번에 나는 곱셈 계산의 귀속 함수를 만들고 싶다.

그런데 계승은 뭐예요?


나는 어떤 사람들은 계승을 잊어버리고, 어떤 사람들은 아직 배우지 않았다고 생각한다. 그래서 간단하게 설명해 보자.
계승하면 어려워요. 그냥 순서대로 곱하는 거예요.
5의 곱하기5 * 4 * 3 * 2 * 1120이다.
3의 곱하기3 * 2 * 16이다.
곱하기란 말 그대로 한 층(바꾸어 말하면 한 층)이기 때문에 순서대로 곱할 뿐이다.
곱셈의 계산 방법은 패턴이 있는데, 1을 뺀 값을 반복해서 곱하기만 하면 된다.
이러한 처리는 귀속 함수를 사용하지 않아도 쓸 수 있지만 귀속 함수를 사용하면 간단하게 기술할 수 있다.
함수 매개 변수에 3 를 지정하면 되돌아오는 6 귀속 함수를 만듭니다.

곱셈 계산의 귀속 함수


귀속 함수 만들기 factorial.
곱셈 계산의 귀속 함수
<?php
function factorial($args) {
    if($args > 0) {
        return $args * factorial($args - 1);
    }
    return 1;
}

echo factorial(3); //表示結果は 6
factorial 함수의 매개 변수가 0보다 크면 실행return $args * factorial($args - 1), 작으면 실행0.
주의해야 할 것은return 1.factorial($args - 1)는 함수 내에서 factorial 함수를 부르기 때문에 여기서 factorial 함수를 집행한다.
그러나 매개 변수가 factorial이기 때문에 함수는 최초의 매개 변수보다 1이 적은 매개 변수로 실행된다.$args - 1 함수 중의 factorial 함수 중의 factorial 함수도 집행되었다.
함수에서 같은 함수를 읽기 때문에 무한 순환한다.
최초의 설명은 무한 순환이기 때문에 시도하지 마세요.
어떤 순서로 처리될지 상상할 수 없어도 아래에 설명해 드리겠습니다.
무한 순환이 되지 않도록 지정되었습니다factorial.
조건if($args > 0)이면 같은 함수를 호출하고, 조건true이면 false을 실행하고 함수를 호출하지 않습니다.
이렇게 귀속 함수를 사용할 때는 return 1를 사용하여 귀속 끝을 기술해야 한다.
나는 네가 회귀 함수의 기술 방법을 이해했다고 생각한다.
다음은 회귀 함수가 어떻게 처리되는지 봅시다.

귀속 함수는 어떻게 처리합니까?


귀속 함수는 함수가 끼워 넣은 그림입니다.if 함수 중의 factorial 함수가 실행되고 같은 함수를 무한 호출하여 함수 중의 factorial 함수 중의 factorial 함수를 집행한다.
아래와 같다.

귀속 함수는 무한 중복이기 때문에 factorial에서 종료 조건을 지정했습니다.
이번의 경우 매개 변수비factorial가 작으면 if 함수를 실행하지 않고 되돌아온다0.
이번 귀속 함수를 코드로 강제로 표시하면 다음과 같은 인상을 받을 수 있다.

함수는 끼워 넣은 것처럼 순서대로 실행된다.
보시다시피 귀속 함수는 복잡한 일을 하지 않았습니다.
끼워 넣은 함수를 하나하나 확인하면 어떻게 처리하는지 이해할 수 있다.
우선 ①.factorial의 조건에 부합되지 않기 때문에 실행1을 하고 ①에서 최종적으로 if의 값을 되돌려줍니다.
② 를 수행합니다.return 1의 조건에 부합하기 위해 집행1하고 ②에서 최종적으로 if의 값을 되돌려준다.
이어서 ③를 수행한다.
return 1 * 1의 조건에 부합하기 위해 1를 실행하고 ③에서 최종적으로 if의 값을 되돌려준다.
④ 를 마지막으로 실행한다.
return 2 * 1의 조건에 부합하여 2를 실행하고 if의 값을 되돌려준다.
이런 느낌 아래에서 귀속 함수는 순서대로 같은 함수를 집행한다.

최후


나는 네가 귀속 함수의 행위를 이해했다고 생각한다.
기타 PHP 관련 기사도 있으니 궁금하신 거 있으면 보세요.
초입문은 철저한 입문이 아니라 초보자를 대상으로 지루하게 설명하는 초입문 보도라는 뜻이다.
  • Qita-[PHP 초입문] 식, 문, 문법, 언어 구조, 제어 구조
  • Qiita-【PHP 초입문】값에 대한 대입과 가격 납부
  • Qiita 정보 - [PHP 초입문] 참조(참조) 대입
  • Qita-[PHP 초입문] HTTP(GET·POST)
  • Qita-[PHP 초입문] 쿠키와 세션
  • Qita-[PHP 초입문] 클래스~예외처리~PDO의 기초
  • Qita-[PHP 초입문] 이름 공간(namespace·use)
  • 이번 보도가 초보자의 이해를 조금 더 깊게 해주면 좋겠다.
    끝까지 읽어주셔서 감사합니다.
    내일의 부가 달력은 @okashoi씨의 뉴스.입니다.
    기타 PHP 추가 달력도 있으니 관심 있으면 보세요.

    PHP 관련 추가 달력

  • PHP Advent Calendar 2018 - Qiita
  • PHP 학습 디자인 모델 Advent Calendar 2018-Qita
  • PHP-MASTER-CHANGES Advent Calendar 2018 - Qiita
  • CakePHP Advent Calendar 2018 - Qiita
  • Laravel Advent Calendar 2018 - Qiita
  • Laravel #2 Advent Calendar 2018 - Qiita
  • Symfony Advent Calendar 2018 - Qiita
  • note


    노트도 기사를 공개했으니 관심 있는 분들은 보세요.
    [초보자를 위한 Codriding] PHP의 TODO 앱 코드를 읽어봅시다.

    좋은 웹페이지 즐겨찾기