リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

3-5. PHP基礎⑤関数と変数のスコープ

調子にのってガンガン進めていこうと思ったけど、さすがリス強敵だ...苦しい…
そして体重が微増しててしょっく。
まあいいや、さて始めまーす。
ちょっと長くなってしまいそうな予感。。。

1-1. 関数とは


関数とは、すごいざっくりですが『ひとまとまりの処理を行ってくれる機能のこと』を言います。関数を使うことで、コードのある部分を1つの関数名で参照できる自己完結したコードのまとまりに分離できます。
『引数』と『返り値』という言葉が出てくるのですが、処理の参考として材料にする値を『引数』といい、引数をもとに出した結果の値を『返り値』といいます。
さっきから返り血って変換しちゃううぜえええええ

1-2. 関数の使ってコードを短縮する


関数のいいところは、ソースコードが短くなり読みやすくなることです。
例としてテストの結果が合格か不合格かを確認するコードを作成してみます。


$sugaku = 84;
$eigo = 62;
$kokugo = 78;

print '数学の結果:';
if ($sugaku > 75){
print '合格です';
}else{
print '不合格です';
}

print '英語の結果:';
if ($eigo > 75){
print '合格です';
}else{
print '不合格です';
}

print '国語の結果:';
if ($kokugo > 75){
print '合格です';
}else{
print '不合格です';
}

数学、英語、国語の3教科の点数をif文で判定していますが、毎回同じような文を各必要があります。
関数を使って、点数を判定して出力する部分を別にまとめて、必要な時に呼び出すように書き直してみます。


function check($kamoku, $tensuu){
print $kamoku.'の結果:';
if ($tensuu > 75){
print '合格です';
}else{
print '不合格です';
}
}

$sugaku = 84;
$eigo = 62;
$kokugo = 78;

check('数学', $sugaku);
check('英語', $eigo);
check('国語', $kokugo);

すっきりですね。まとめることのメリットとしては処理の記述を1回しか書かなくて済むし、プログラムも見やすくなって記述ミスを減らすことができます。

1-3. 定義の仕方


関数は、定義済みの内部関数と、ユーザー定義関数(自分で定義する関数)があり自分で定義する場合は以下のように定義します。

function 関数名(変数名 $a, $b)
{
$x=$a+$b;
return $x;
}

・関数を定義するときはfunctionではじめる
・変数名を入れた()のあとはセミコロンはなし
※()の中が引数となる変数です
・関数名は半角英数字とアンダースコア、数字は先にきちゃだめ、大文字小文字の区別はなし
・return文で関数を終了し、返り値を返す

2.変数のスコープ(有効範囲)


変数には、使える有効範囲があるようで、どこを有効範囲とするのか?というと、{}で囲まれた部分のことをいうみたいです。
2つ、簡単に説明します。
①ローカル変数
関数内で宣言され、そこでだけアクセスできる変数のことです。

グローバル変数
関数外で宣言された変数。プログラム内のどのコード行からでもアクセスできます。


3章終わり!!

いじょー