「PHP/入門/関数とは」の版間の差分
→変数のスコープ: 変数名がnでなくs |
|||
125 行 | 125 行 | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
;実行結果 |
|||
⚫ | |||
<pre> |
|||
しかし、これらは、別物である。 |
|||
グローバル変数10 |
|||
ローカル変数99 |
|||
</pre> |
|||
⚫ | |||
145 行 | 150 行 | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
;実行結果 |
|||
⚫ | |||
sの二乗は9801です。 |
|||
⚫ | |||
こうすることにより、グローバル変数を関数内で使用することができるようになる。 |
こうすることにより、グローバル変数を関数内で使用することができるようになる。 |
||
2020年6月24日 (水) 12:55時点における版
PHPにおけるユーザー定義関数の基本
PHPにかぎらずプログラミング言語全般において一般に「関数」(かんすう)とは、行いたい処理をひとまとめにして、あとでそれを簡単に実行できるようにするためのものである。
PHPには、あらかじめ、よく使われる関数がいくつか用意されており組み込まれているが、それとは別に、ユーザーが独自の関数を定義することもできる。
本ページでは以降、特にことわらないかぎり、「関数」と言った場合は、ユーザー定義関数のことであるとする。
- ユーザー定義関数の例
<?php
f();
function f(){
print "a<br>";
print "b<br>";
}
?>
ユーザー定義関数は、上記のように使われる。
関数をユーザーが定義するには、function 宣言を使い、波カッコ { } の中に処理をかく。
つまり
function 関数名(引数) {
// させたい処理をカッコ内に書く
}
という書式である。(※ 余談だが、JavaScript でも関数の定義には function 宣言が必要になる。)
PHPで関数を実行させたい場合には、phpタグ内で関数の名前(上記コードでは「f」が名前)を書くだけで、{ }カッコ内の処理を行ってくれる。
「引数」(ひきすう)とは、関数が呼び出されたときに、呼び出し元から受け取る情報のことです。
(ちなみに、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} <br>";
f();
function f() {
$i = 99;
print "ローカル変数{$i} <br>";
}
?>
- 実行結果
グローバル変数10 ローカル変数99
このとき、f() の中に、変数 $i があり、グローバルスコープにも、変数 $i がある。しかし、これらは別物である。
しかし、下記のように global 宣言子を使うと、関数内でもグローバル変数を使用することができる。
- 例
<?php
$s = 99;
f();
function f() {
global $s;
$i = $s * $s;
print "sの二乗は{$i}です。 <br>";
}
?>
- 実行結果
sの二乗は9801です。
関数 f() の1行目の global に注目してほしい。
こうすることにより、グローバル変数を関数内で使用することができるようになる。