通常ユーザー定義関数の出力結果は return で戻り値(返り値)として返すのが一般的ですが、
preg_match() の $match のように結果を指定された変数に保存したい場合や、
エラー発生時に任意の変数にエラーコードを格納したい場合などがあると思います。
そういった場合は引数に & を付けて参照渡しにします。(参照渡しについて)
下の例では2つの数値を足した結果を任意の変数に格納しています。
<?php sample(3, 4, $result); echo $result; function sample($a, $b, &$x){ $x = $a + $b; }
【出力結果】
7
変数 $x を参照渡しにすることで、$x に与えられた変更が $result に影響するようにしています。
次の例では関数 sample() に渡された文字列が「ok」でない場合エラーコード(例では「Error 123」)を 変数 $code に格納します。
<?php $value = 'test'; $result = sample($value, $code); var_dump($result); echo $code; function sample($value, &$error=null){ if($value == 'ok'){ return true; } else { $error = "Error 123"; return false; } }
【出力結果】
boolean false Error 123
エラーコードをどの変数に格納するかは関数 sample() の第 2 引数 $error に & をつけて指定しています。
引数 $error には初期値を設定してあるのでエラーコードを受け取る必要がない場合は引数を省略できます。
例では格納先に変数 $code を指定していますが、「$err」を指定すれば「$err」に格納されます。
Similar Posts:
- [PHP]よくあるエラーメッセージの原因と対処法 1
- [PHP]FTPでアップロードやダウンロード等のファイル操作を行う
- [PHP]よくあるエラーメッセージの原因と対処法 2
- [PHP]エラーの発生箇所を特定する手法
- [PHP]ZipArchiveクラスを使ったファイルのZip圧縮と展開(解凍)
- PHP で XML の内容を取得する(DOM, XPath)
- [PHP]file_get_contents()でWebページのステータスコードを取得する
- [PHP]「キリ番」を判定する