PHP/入門/関数とは

出典: フリー教科書『ウィキブックス(Wikibooks)』
< PHP
ナビゲーションに移動 検索に移動

PHPにおける関数の基本[編集]

関数とは、行いたい処理をひとまとめにして、あとでそれを簡単に実行できるようにするためのものである。

例:

<?php
f();

function f($n){
    print "a<br>";
    print "b<br>";
}
?>

関数は、このように使う。 関数を定義するには、functionを使い、その中に、処理をかく。 そうすれば、関数の名前を書くだけで、中の処理を行ってくれる。 (ちなみに、PHPはコードをすべてメモリに読み込んでから実行するため、関数をプログラムのどこに書いても 関数を使うことができる。)

これを実行すると、


a

b


のように表示される。

値を返す関数[編集]

関数は値を返すこともできる。 例えば、

<?php
$num = pi();

print $num;
?>

pi() は、円周率を返す関数である。 これを参考に、単純に1を返す関数を作る。

<?php
$a = f();

print $a;

function f(){
    return 1;
}
?>

関数が値を返すようにするには、return 命令を使う。 その後に書いた値 (整数、実数、文字列) を返す。

これを実行すると、$a には 1が代入される。

引数をもつ関数[編集]

関数には引数を持たせることもできる。

例:

<?php

print add(10, 99);

function add($i, $j){
    return $i + $j;
}

?>

引数は、括弧のなかへ記述する。

変数のスコープ[編集]

関数の外で定義した変数をグローバル変数、 関数の中で定義した変数をローカル変数と呼ぶ。

通常、グローバル変数を関数内で使用することはできない。 また、ローカル変数を関数外で使用することはできない。

このような、変数の使える範囲のことを、スコープ(Scope) と呼ぶ。

<?php
$i = 10;
print "グローバル変数{$i}";

function f(){
    $i = 99;
    print "ローカル変数{$i}";
}
?>

このとき、f() の中に、変数 $i があり、グローバルスコープにも、変数 $i がある。 しかし、これらは、別物である。

しかし、関数内で、グローバル変数を使用することができる。

例:

<?php
$n = 99;
f();

function f() {
    global $s;
    $i = $s * $s;
    print "sの二乗は{$i}です。";
}
?>

関数 f() の一行目の global に注目してほしい。 こうすることにより、グローバル変数を関数内で使用することができるようになる。