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

出典: フリー教科書『ウィキブックス(Wikibooks)』
< PHP
削除された内容 追加された内容
編集の要約なし
54 行 54 行




値を返すには <code>return </code>という宣言を使う。returnはその後に書かれた確定値 (整数、浮動小数、文字列) を返す。
例えば、


例えば、下記のコードは、単純に関数fが1を返す関数である。

<syntaxhighlight lang="PHP">
<syntaxhighlight lang="PHP">
<?php
<?php
$num = pi();
$a = f();


print $num;
print $a;

function f(){
return 1;
}
?>
?>
</syntaxhighlight>
</syntaxhighlight>


実行すると、
実行結果
1
3.1415926535898
のように表示される。
表示される。


;解説
<code>pi()</code> は、円周率の数値を返す関数である。
上記コードを実行すると、まずf()が呼び出され、f()から1が返され、その値が<code> $a = f(); </code>という代入命令により $a には 1が代入される。


なお、プログラミングでは代入命令の式は一般に、右辺から先に実行される。


下記のコードは、単純に1を返す関数である。


;参考
<syntaxhighlight lang="PHP">
<syntaxhighlight lang="PHP">
<?php
<?php
$a = f();
$num = pi();


print $a;
print $num;

function f(){
return 1;
}
?>
?>
</syntaxhighlight>
</syntaxhighlight>


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

<code>pi()</code> は、円周率の数値を返す関数である。


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


== 引数をもつ関数 ==
== 引数をもつ関数 ==

2020年6月24日 (水) 13:07時点における版

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

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

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

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


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

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

ユーザー定義関数は、上記のように使われる。


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

a
b

のように表示される。

関数の使用法

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

つまり

function 関数名(引数) {
    // させたい処理をカッコ内に書く
}

という書式である。(※ 余談だが、JavaScript でも関数の定義には function 宣言が必要になる。)


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

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

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

値を返す関数

関数は、呼び出し元に確定したデータを出力することもできる。なお、確定したデータのことをプログラミング用語で一般に「値」(ち、あたい)という。データが確定さえしていれば、数値でなくても文字列であっても、プログラミングでいう「値」である。

関数が呼び出し元に確定データを与える事を、関数が「値を返す」という。


値を返すには return という宣言を使う。returnはその後に書かれた確定値 (整数、浮動小数、文字列) を返す。


例えば、下記のコードは、単純に関数fが1を返す関数である。

<?php
$a = f();

print $a;

function f(){
    return 1;
}
?>

実行結果

1

と表示される。

解説

上記コードを実行すると、まずf()が呼び出され、f()から1が返され、その値が $a = f(); という代入命令により $a には 1が代入される。

なお、プログラミングでは代入命令の式は一般に、右辺から先に実行される。


参考
<?php
$num = pi();

print $num;
?>

を実行すると、

3.1415926535898 

のように表示される。

pi() は、円周率の数値を返す関数である。


引数をもつ関数

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

例:

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