「PHP/入門/関数とは」の版間の差分

出典: フリー教科書『ウィキブックス(Wikibooks)』
< PHP
削除された内容 追加された内容
.旻 (トーク | 投稿記録)
pre -> source
ユーザー定義関数
1 行 1 行
== PHPにおける関数の基本 ==
== PHPにおけるユーザー定義関数の基本 ==
PHPにかぎらずプログラミング言語全般において一般に「関数」(かんすう)とは、行いたい処理をひとまとめにして、あとでそれを簡単に実行できるようにするためのものである。


PHPには、あらかじめ、よく使われる関数がいくつか用意されており組み込まれているが、それとは別に、ユーザーが独自の関数を定義することもできる。
関数とは、行いたい処理をひとまとめにして、あとでそれを簡単に実行できるようにするためのものである。


本ページでは以降、特にことわらないかぎり、「関数」と言った場合は、ユーザー定義関数のことであるとする。
例:

<source lang=php>

;ユーザー定義関数の例:
<syntaxhighlight lang="PHP">
<?php
<?php
f();
f();
13 行 17 行
}
}
?>
?>
</syntaxhighlight>
</source>


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


関数をユーザーが定義するには、function 宣言を使い、波カッコ { } の中に処理をかく。
これを実行すると、




つまり
a
<syntaxhighlight lang="PHP">
function 関数名(引数) {
// させたい処理をカッコ内に書く
}
</syntaxhighlight>
という書式である。(※ 余談だが、JavaScript でも関数の定義には function 宣言が必要になる。)


PHPで関数を実行させたい場合には、phpタグ内で関数の名前(上記コードでは「f」が名前)を書くだけで、{ }カッコ内の処理を行ってくれる。


「引数」(ひきすう)とは、関数が呼び出されたときに、呼び出し元から受け取る情報のことです。


(ちなみに、PHPはコードをすべてメモリに読み込んでから実行するため、関数をプログラムのどこに書いても
関数を使うことができる。)


上記コードを実行すると、
b


a
b


のように表示される。
のように表示される。
35 行 53 行
関数は値を返すこともできる。
関数は値を返すこともできる。
例えば、
例えば、
<source lang=php>
<syntaxhighlight lang="PHP">
<?php
<?php
$num = pi();
$num = pi();
41 行 59 行
print $num;
print $num;
?>
?>
</syntaxhighlight>
</source>


pi()
pi()
47 行 65 行
これを参考に、単純に1を返す関数を作る。
これを参考に、単純に1を返す関数を作る。


<source lang=php>
<syntaxhighlight lang="PHP">
<?php
<?php
$a = f();
$a = f();
57 行 75 行
}
}
?>
?>
</syntaxhighlight>
</source>


関数が値を返すようにするには、return 命令を使う。
関数が値を返すようにするには、return 命令を使う。
70 行 88 行
例:
例:


<source lang=php>
<syntaxhighlight lang="PHP">
<?php
<?php


80 行 98 行


?>
?>
</syntaxhighlight>
</source>


引数は、括弧のなかへ記述する。
引数は、括弧のなかへ記述する。
94 行 112 行
このような、変数の使える範囲のことを、スコープ(Scope) と呼ぶ。
このような、変数の使える範囲のことを、スコープ(Scope) と呼ぶ。


<source lang=php>
<syntaxhighlight lang="PHP">
<?php
<?php
$i = 10;
$i = 10;
print "グローバル変数{$i}";
print "グローバル変数{$i}";


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


このとき、f() の中に、変数 $i があり、グローバルスコープにも、変数 $i がある。
このとき、f() の中に、変数 $i があり、グローバルスコープにも、変数 $i がある。
113 行 131 行
例:
例:


<source lang=php>
<syntaxhighlight lang="PHP">
<?php
<?php
$n = 99;
$n = 99;
124 行 142 行
}
}
?>
?>
</syntaxhighlight>
</source>


関数 f() の一行目の global に注目してほしい。
関数 f() の一行目の global に注目してほしい。

2020年5月9日 (土) 05:39時点における版

PHPにおけるユーザー定義関数の基本

PHPにかぎらずプログラミング言語全般において一般に「関数」(かんすう)とは、行いたい処理をひとまとめにして、あとでそれを簡単に実行できるようにするためのものである。

PHPには、あらかじめ、よく使われる関数がいくつか用意されており組み込まれているが、それとは別に、ユーザーが独自の関数を定義することもできる。

本ページでは以降、特にことわらないかぎり、「関数」と言った場合は、ユーザー定義関数のことであるとする。


ユーザー定義関数の例
<?php
f();

function f($n){
    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}";

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 に注目してほしい。 こうすることにより、グローバル変数を関数内で使用することができるようになる。