ユーザー定義関数

メモ:  Category:php

関数とは、ある機能をはたすためのプログラムのかたまりです。

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 では、可変個の引数を関数に渡すことができたり、変数に関数名をセットしその変数に「()」をつけることで関数が呼べる可変関数という機能もあります。

bluenote by BBB