【PHP】 인수의 초기값을 설정한 함수 | 우선도(초기값 < 인수)

web계 엔지니어를 목표로, MENTA를 이용해, PHP를 학습하고 있는 초학자입니다.
날마다 학습하고 있는 것의 망비록, 모치베 유지, 제대로 하고 있는 것의 증명! 그래서, 게시합니다.

대상자



PHP를 배우기 시작한 초학자

내용



함수로 인수의 초기치를 설정했을 때의 값의 취급

운영 환경



PHP 7.1.32

기본 오사라이



함수·인수란?


$a = 1;
$b = 2;
$c = 3;
//仮定:組み合わせごとの和を求めたい
$ab = $a + $b;  //3
$ac = $a + $c;  //4
$bc = $b + $c;  //5

//関数にする
function sum($number1, $number2) {
    $sum = $number1 + $number2;
    return $sum;
}
関数上記の4行
引数関数に渡す/受け取る値$number1, $number2)

//関数を使用する
$ab = sum($a, $b);  //3
$ac = sum($a, $c);  //4
$bc = sum($b, $c);  //5

여기까지는 간단!

이것이 본제!



함수는 매우 편리 (= 익숙하지 않으면 안됨)로, 멘토 씨로부터,
"그 함수로 해보자."
"그 처리는 함수로 하면 코드가 깔끔해요."
라고 지적을 받아, 점점 함수화해 갑니다.

이번에 쓰고 싶은 것은 함수를 양산하는 안에 알게 된,
인수의 초기값을 설정한 함수를 호출할 때,
인수를 건네주지 않으면, 초기치가 대입되어,
인수를 건네주면, 그쪽이 대입된다.
즉, 우선 순위는 초기 값 <인수입니다.

문장이라고 이해하기 어렵지만, 예를 보면 간단합니다!
//初期値を設定した関数
function sum($a=5, $b=10) {
    $sum = $a + $b;
    return $sum;
}

//呼び出し方で結果が変わる
$case1 = sum();      //15 (=5+10)
$case2 = sum(1, 2);  //3  (=1+2)
$case3 = sum(1);     //11 (=1+10)

인수를 전달하지 않으면 초기 값이 할당됩니다.$case1 = sum(); //15 (=5+10)
인수를 건네주면, 그쪽이 대입된다··$case2 = sum(1, 2); //3 (=1+2)
덤: 인수를 1개만 지정했을 경우, (인수, 초기치)로 대입된다 ··$case3 = sum(1); //11 (=1+10)
이상, 간단했습니다!

「・・・그러니까?」
"이거, 무슨 도움이 되는 거야?"
그런 초학자의 방향에, 실례를 내고 종료합니다.

유용한 예



"~게임을 만들어라"
라고 하는 과제로, 「곧 끝나면 시시하다」라고 생각해, 「3포인트 선취」로서, 작성 개시.
승리수를 유지하는데 막혔을 때, 멘토씨로부터 어드바이스를 받았습니다.
//ゲーム関数
function game($victory = 0, $com_victory = 0) {
    //ゲーム実行
    //プレイヤーが勝利すれば、$victory++
    //COMが勝利すれば、$com_victory++
    //どちらかが「3」に達していたら、終了
    //達していなければ、再度ゲーム関数呼び出し(いわゆる、再帰関数!)
}

"게임 함수를 호출할 때마다.
「하지만 멘터 씨가 이런 실수를 할 리 없다··」
라고 조사하는 안에, 초기치의 우선도를 이해해 납득.
//ゲーム関数を、最初に呼び出す場合
game();
//再帰関数として呼び出す場合
game($victory, $com_victory);

이렇게하면 처음 호출 할 때 초기 값 (승리 수 = 0)이 적용됩니다.
재귀 함수로 호출할 때는, 각각의 승리수가 계승되어,
「3포인트 선취」를 실현할 수 있었다고 한다.
짱짱.

좋은 웹페이지 즐겨찾기