[BACK][HOME][NEXT]

自作関数

関数の定義

以下のように、functionによって定義します。
引数のリストは,で区切り、省略することも出来ます。

function 関数名(引数のリスト){
  処理;
}

以下は、テストと表示するだけの関数です。

function test1(){
  echo 'テスト';
}

以下は、引数を表示するだけの関数です。

function test2( $a ){
  echo $a;
}

以下は、引数の和を表示する関数です。

function test3( $a, $b ){
  echo $a + $b;
}

これらの関数の使用例は次の通りです。

<?php
test1();     //「テスト」と表示
test2(1);    //「1」と表示
test3(1,2);  //「3」と表示

function test1(){
  echo 'テスト';
}
function test2( $a ){
  echo $a;
}
function test3( $a, $b ){
  echo $a + $b;
}
?>

return:関数の強制脱出と値返し

「return 値」で、関数を強制的に抜け、関数が値を返す。

<?php
$kotae = test(1,2);
echo $kotae;  //「3」と表示

function test($a,$b){
  return $a + $b;
}
?>

上の例は下の例のように簡単に書ける。

<?php
echo test(1,2);  //「3」と表示

function test($a,$b){
  return $a + $b;
}
?>

変数のように計算式に含めることも出来る。

<?php
echo test(1,2) * 2;  //「6」と表示
echo test(1,2) * test(3,4);  //「21」と表示

function test($a,$b){
  return $a + $b;
}
?>

参照渡し:関数で変数の値を変える

引数の最初に&をつけると、参照渡しが出来る。
これによって、引数の元になった変数自身の値を関数内で書き換えることが出来る。

<?php
$x = 1;

test1($x);  echo $x;  //1のまま
test2($x);  echo $x;  //2に変わる

function test1($a){ $a ++; }   //引数の元になった$xの値は変えない
function test2(&$a){ $a ++; }  //引数の元になった$xの値も変える
?>

デフォルト値:引数を省略した時に、代わりに代入される値

引数の後に「=値」を付けると、それがデフォルト値になる。

<?php
test(5);  //5と表示
test();   //0と表示

function test($a=0){ echo $a; }
?>
[BACK][HOME][NEXT]