見出し画像

function「関数」「型宣言」の書き方


関数とは

関数とは、いくつかの処理をひとまとまりにしたもの。
機能を部品化するイメージで、その部品(関数)を使い回すことができる。

関数には、処理を実行するための条件である「引数」(パラメータ)を渡すことができる。
そして、処理の実行結果を「戻り値」として返却する。

通常のfunctionの書き方

//関数の定義
function ☆関数名 ($引数1, $引数2, ...$引数n) {
  //関数内の処理
 return 戻り値;
}
//関数の実行
$戻り値 = ☆関数名($引数1, $引数2, ...$引数n);


関数を使って計算式を作る例

function calc ($num1, $num2) {
 //引数1と引数2を足して$totalに入れる
 $total = $num1 + $num2;

 //$totalを戻り値として返す
 return $total;
}

作った関数を呼び出すとき
$戻り値 = 定義した関数名(引数);

//作った関数の呼び出し
$kekka = calc(1, 2);

echo $kekka;
//変数$kekkaの戻り値は「3」


関数名が[total]の場合

//複数の引数を指定する場合はカンマで区切る
total($a, $b)

//引数を指定しない場合は何も記述しない
total()


function total($scoreList) {
  $totalScore = 0;

  foreach($scoreList as $score) {
  //スコアを加算
  $totalScore += $score;
  }

  //合計値を返却
  return $totalScore;
}

$scoreList = array(2,4,5);

//関数の実行
$totalScore = total($scoreList);

//合計スコアを出力
echo $totalScore;


11
function pluckId(array $recs): array {
 //ids配列(空配列)
 $ids = [];

 //recsの要素数分ループ、rec変数にはレコード(連想配列)が入る
    foreach ($recs as $rec) {
        // 1回目 $rec = ['id' => 101, 'name' => 'NAME01'];
        // 2回目 $rec = ['id' => 102, 'name' => 'NAME02'];
        // 3回目 $rec = ['id' => 103, 'name' => 'NAME03'];

        // レコード(連想配列)のキー'id' の値を取り出し、ids配列に追加
        $ids[] = $rec['id'];
        // 1回目 $ids = [101]
        // 2回目 $ids = [101, 102]
        // 3回目 $ids = [101, 102, 103]
    }

    // ids配列を戻り値として返す
    return $ids;
}

$records = [
    ['id' => 101, 'name' => 'NAME01'],
    ['id' => 102, 'name' => 'NAME02'],
    ['id' => 103, 'name' => 'NAME03'],
];
// pluckId 関数を使う
$result = pluckId($records);
var_dump ($result); // [101, 102, 103]


戻り値なしの関数

関数で戻り値を返す必要がない場合は、戻り値を指定する必要はない。
(returnを書かなくて良い。)

//戻り値なしの例

function hello() {
  echo("こんにちは");
}

//関数の呼び出し
hello();


引数なしの関数

関数に渡す引数がない場合は、関数に引数を書く必要はない。

//引数なしの例

function hello() {
  echo("こんにちは");
}

//関数の呼び出し
hello();


デフォルト引数

関数の引数にはデフォルト値を設定できる。
関数を呼び出すときに引数が指定されている場合は指定された引数の値を使い、引数が指定されていない場合はデフォルト値を使う。

//デフォルト引数が「こんにちは」
function hello ($a = "こんにちは") {
  echo $a;
}

//関数の呼び出し
hello("おはよう");
hello();


おはよう
こんにちは



型宣言

関数の引数(パラメータ)や戻り値に型を指定することができる。
型を指定することで関数の引数や戻り値の型を明確することができる。

int

 小数点がつかない数値(整数型)

//引数 型宣言の書き方
function Sample (int $a) { ...


//戻り値 型宣言の書き方
function Sample() : int { ...

//引数も戻り値も 型宣言をする場合
function sample(int $a): int { ...


//?をつけるとNULLも許容される
function sample(int $a): ?int { ...


float

小数点がつく数値(浮動小数型)

//引数 型宣言の書き方
function Sample (float $a) { ...


//戻り値 型宣言の書き方
function Sample() : float { ...

//引数も戻り値も 型宣言をする場合
function sample(float $a): float { ...


//?をつけるとNULLも許容される
function sample(float $a): ?float { ...


bool

 true(真)またはfalse(偽)のどちらかの値を持つ(論理型)

//引数 型宣言の書き方
function Sample (bool $a) { ...


//戻り値 型宣言の書き方
function Sample() : bool { ...

//引数も戻り値も 型宣言をする場合
function sample(bool $a): bool { ...


//?をつけるとNULLも許容される
function sample(bool $a): ?bool { ...


string

文字列

//引数 型宣言の書き方
function Sample (string $a) { ...


//戻り値 型宣言の書き方
function Sample() : string { ...

//引数も戻り値も 型宣言をする場合
function sample(string $a): string { ...


//?をつけるとNULLも許容される
function sample(string $a): ?string { ...


array

配列

//引数 型宣言の書き方
function Sample (array $a) { ...


//戻り値 型宣言の書き方
function Sample() : array { ...

//引数も戻り値も 型宣言をする場合
function sample(array $a): array { ...


//?をつけるとNULLも許容される
function sample(array $a): ?array { ...

この記事が気に入ったらサポートをしてみませんか?