読者です 読者をやめる 読者になる 読者になる

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

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

5-1. PHPの関数とオブジェクト①関数おさらい

今月中に5章、6章終わらして来月は7章の実践編に行きたいなーー
そして6章に行けば一応前回の自分を越えれるので、気合いを入れて頑張ります。

3章ではPHPの基礎としてPHPの書き方や変数や演算子を使って式が構成されていくこと、4章ではある定義のときはここの道を通るとか、同じ道をぐるぐる通らせるとかのプログラミングの流れを変える手段を勉強しました。

5章では3章で軽く触れた『ひとまとまりの処理を行ってくれる機能」である関数について、定義からその呼び出し、値の受けとりや渡し方まで関数の使用に関するすべてを勉強します。

1-1.関数とは(おさらい)


関数とは、ひとまとまりの処理を行ってくれる機能のことです。引数を参考に処理を行い、返り値を出します。
関数を使うことは以下のメリットがあります。
・コードの記述量が少なくて済む
シンタックスエラーやそのほかのエラーが減る
・プログラムのファイルの読み込みにかかる時間が減る
・関数は呼び出される回数に関係なく、どれも1度だけコンパイル機械語に変換)されるのでプログラムの実行にかかる時間が短くなる

1-2. 関数を定義する(おさらい)


関数の定義は以下のように定義します。(3章でも記載しましたが)

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

ルールは
・関数を定義するときはfunctionではじめる。
・functionのあとは関数の名前を続ける。関数名は英数字とアンダースコアが使用できるが、先頭の文字は英字かアンダースコアでなくてはならない。
・かっこは必ずつえる、かっこのあとはセミコロンはなし。
・関数名は大文字、小文字の区別はされない
・return文で関数を終了し、返り値を返す(returnをつけなくてもいい場合もあり)

1-3.ビルトイン関数


基本的・汎用的な演算処理を行うためにあらかじめ用意されている関数です。
日付や時刻を取得したり、文字を逆にしたり、繰り返したり、大文字や小文字にすることができます。

ビルドイン関数を使ったフルネームを整えるコードを見てみます。


<?php
echo fix_names("WILLIAM", "henry", "gatES");

function fix_names($n1, $n2, $n3)
{
$n1 = ucfirst(strtolower($n1));
$n2 = ucfirst(strtolower($n2));
$n3 = ucfirst(strtolower($n3));
return $n1 . " " . $n2 . " " . $n3;
}
?>


strolower関数は文字を全部小文字にする関数です。(ちなみに大文字にするときはstrtoupper関数を使います)文字の最初だけ大文字にするにはunfirst関数を使います。
f:id:taro-blog2323:20160724185328p:plain
先にカッコの中を評価し、小文字にした後に、urfirst関数で各名前の先頭だけ大文字にしています。
ユーザーが名前を登録するときに、文字入力を間違ってしまう場合に使ったりできそう。

1-4.配列を返す


複数の値を得ることをするには、複数の値を配列に入れて返す方法があります。

<?php
$names = fix_names("WILLIAM", "henry", "gatES");
echo $names[0] . " " . $names[1] . " " . $names[2];

function fix_names($n1, $n2, $n3)
{
$n1 = ucfirst(strtolower($n1));
$n2 = ucfirst(strtolower($n2));
$n3 = ucfirst(strtolower($n3));
return array($n1, $n2, $n3);
}
?>


この場合は、3つの名前をそれぞれ別個に維持できます。
f:id:taro-blog2323:20160724185328p:plain
重複した名前のユーザーがいない場合、ユーザーを参照したい時に返されたストリングから名前を抽出しなくても元のファーストネームやラストネームを使用するだけですむとのこと。


以上!
ちょっと5章むずかしいいいい....