関数とは、ある機能をはたすためのプログラムのかたまりです。
phpでは、この機能にあたる部分があらかじめ沢山用意されています。
例えば、数値を丸めるのに使うroundという関数があります。
この関数は、数値と丸め位置を与えるとその位置で丸めた結果を出力してくれます。
このような関数を開発者が独自に作成することができます。これをユーザー定義関数と呼びます。
ユーザー定義関数はfunctionという記述からはじめます。
function 関数名(){ 処理; }
関数を実行した結果を返す場合、returnという命令を使います。
この返す値を戻り値といいます。
function 関数名(){ 処理; return(値); }
関数には、何らかの値を与えることができます。それを引数と言います。
関数に与える引数には、値渡しと参照渡しといった渡し方の違いがあります。
また、引数はカンマで区切ることで複数の値を与えることができます。
値渡し
関数に値を与える方法の1つ値渡しは、phpのデフォルトで関数に渡されるとコピーが作成されます。
コピーということなので、関数に渡された引数の値を変更しても関数内だけで有効になります。
関数の外(値を与えた側)の値には、影響がないということになります。
例.
<?php function calc($value){ $value = $value * 1.05; return ($value); } $price=100; print (calc($price)) . "円<br>"; print ($price) . "円"; ?> //結果は 105円 100円
参照渡し
もうひとつの渡し方に参照渡しと言う渡し方があります。
これは、与えた側の値に影響する渡し方です。
参照渡しの場合、引数の頭に「&」をつけます。
例.
<?php function calc(&$value){ $value = $value * 1.05; } $price=100; calc($price); print ($price) . "円"; ?> //結果は 105円
returnしていないのに値が変わっているのがわかります。
デフォルトの引数
引数には、値が渡されなかったときに規定値として働く値を設定しておくことができます。
デフォルト値は、引数に「=値」という形で設定します。ただし、複数個の引数をとる場合
デフォルト値のない引数の右側に全てあることが必要です。
例.
<?php function calc($value,$rate=1.05){ $value = $value * $rate; return ($value); } $price = 100; print (calc($price)) . "円"; ?> //結果は 105円
その他にphpでは、可変個の引数を関数に渡すことができたり、変数に関数名をセットし
その変数に「()」をつけることで関数が呼べる可変関数という機能もあります。
Copyright 1997-2010 BBB All rights reserved.