侮れない引数

home

引数の基本

引数は関数に渡す値のこと。()に入る値が引数。

CF ,PHPの基本文法 -関数の引数について-(最終閲覧2020/05/06)

function func(){ echo "HimaIse"; }

関数に引数を指定すると、関数でまとめている処理に、意図した値を渡すことができる。関数内で新たに変数等を指定せずとも、引数を指定すれば、それをそのまま関数内で利用できるようになる。

試しにvar_dump()等でデバッグしてみれば分かる。引数に値が入っていれば、その値が出力されているので、何が入っているのか分かるだろう。引数には、文字列や数値、配列などを指定できる。

値を渡そうとせずとも、デフォルト値を()の中に書くことで、その値を処理に使えたりもする。これをデフォルト引数値と呼ぶ。公式には以下のようなコードが書いてある。これをエディタで確認してみる。

function makecoffee($type = "cappuccino")
{
    return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");

//以下出力
//Making a cup of cappuccino.
//Making a cup of .
//Making a cup of espresso.

一つ目は引数にcappccinoを指定しているので、それがそのまま出力される。二つ目は呼び出すときに、nullを引数としてmakecoffee()に渡しているので、初期値のcappccinoではなく、nullが渡されているので、何も表示されていない。三つ目は初期値ではない、違う値が渡されているのでそれが出力されている。

実際に使う状況としては、所属する開発環境にも寄ると思う。処理ごとにファイルを分けている場合には、その機能ごとに値を指定して、それを別関数で呼び出す際に引数として使うパターン。そのファイル自体で使用している変数や配列なりを引数として持ってくるパターンなど様々だと思う。

以下のような場合にはエラーが出る。出力の際に、引数が足りていないからだ。

$type = "cappuccino";

function makecoffee($type)
{
    return "Making a cup of $type.\n";
}
echo makecoffee();
?>

// Fatal error: Too few arguments to function makecoffee()

上記の出力の際に、引数を入れてやれば、それが出力されエラーは出ない。引数として、$typeを渡せばcappuccinoが出力されるが、設定した変数の値以外を入れればそれが出力される。
また、makecoffee()に初期値を指定してしまえば、エラーはそもそも出ない。このとき、null許可型もある。

侮れない引数

注意というか私的に意識しようと思ったのが、引数を上手く使うことでコードをシンプル化させ、可読性の向上と運用をしやすくすること。それと、処理速度の向上

例えば、一回で済む処理を何度も繰り返していては、無駄な処理になり、その分だけ余計な時間がかかりパフォーマンスは低下する。作業に支障が出るし、ユーザーの満足度にも影響する。同じことができるなら、よりシンプルに分かりやすく、冗長ではない方が良い。その方がスマートだ。引数を効果的に使えれば、無駄なコードを加える必要もなく、処理の使い回しもできるので楽だ。オブジェクト指向の場合に、効率的にコードを書いていく際に引数は侮れない。

値渡しと参照渡し

これまで見てきた引数は、要は「値渡し」のこと。以下を参照すれば分かりやすい。似たようなものに、「参照渡し」というものがあるが、値渡しとは違うもので混同しないように気を付ける。サンプルコードを見れば違いが一発なので参照しておきたい。
CF, PHP 参照渡しまとめ(最終閲覧2020/05/06)

basic, php

Posted by himajinn