PHP

関数を便利に使う - PHP入門

2021年4月30日

PHP でユーザ定義関数を記述するさい、知っておくと便利な記述の仕方を紹介します。
今回は、関数を使うテクニック「引数の参照渡し」「引数の初期値」「可変関数」についてまとめます。

関連

ユーザ定義関数の基本については「ユーザ定義関数」にまとめています

 

関数の使い方:引数の「値渡し」と「参照渡し」

以下のような PHP プログラムで考えてみましょう。

 出力結果
20=>21
20

呼出し元の $val は関数 my_inc() 内で +1 されますが、引数で渡した元の $val の値は変わらないままです。

これは、関数の引数に「値渡し」で変数を渡しているからです。
関数の引数に渡した変数を、関数内の処理で変更したい場合は「参照渡し」を行う必要があります。

 

参照渡しを行うには、以下のいずれかの方法で行います。

 

変数の前に「&」をつけて「参照渡し」にして関数へ渡すことができます。

 

常に my_inc() の関数に「参照渡し」で引数を渡したい場合は、
関数定義の引数に予め「&」をつけることで、呼び出し側では付けなくてよくなります。

 

関数の使い方:引数に初期値を設定

関数に引数があっても、呼び出し元で引数を省略することができます。
呼出し側で引数が省略されたときに使用される値(初期値)の設定方法です。

 出力結果
21

先ほどの関数の引数に初期値「20」を設定しました。
引数を省略して呼び出すと、初期値で計算された値が返ってきます。

注意ポイント

引数が複数ある場合、初期値を設定した引数の次に、普通の引数を設置することはできません。
引数を省略して呼び出した際に、エラーとなります。
「function test($val=20, $key)」となる場合は、「function test($key, $val=20)」としましょう。

 

関数の使い方:可変関数

プログラムを作っていると、条件によって呼出す関数を使い分けたいシーンは多いと思います。
PHP では、「可変関数」を使って関数を呼出すことができます。

参考

PHP での条件分岐については「条件分岐(switch文)」にまとめています。

SANACHAN
SANACHAN
覚えておくと、重宝しますよ!

上記のようなコードを可変関数を使って書き直すと、以下のようになります。

 

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-PHP
-,