目次
【 PHP学習 #10 】 「関数を自作する」
今まで学んできた構文を使って、関数を作ってみます。
構文を単体で学んでいると、正直なところ、
「そんなことできても何に使うんだ?」と思うものばかりです。
プログラミングは何かを作ることが学ぶことが最も多いと思います。
【 郵便番号かどうかを判別する 】
郵便番号かどうかを判別するプログラムを作ります。
(本来はもっと簡単な方法がありますが、今までの構文の練習です。)
プログラミングを行う際に、「それってどういう意味か」ということを考えることが重要です。
郵便番号かどうかは、何を以って判断させるかというと、
7桁という桁数を確認させることで、判別させます。
▶︎ コード
<?php
$postalCode = '123-4567';
function checkPostalCode( $str ) {
$replaced = str_replace( '-', '', $str );
$length = strlen( $replaced );
if ( $length === 7 ) {
return true;
}
return false;
}
var_dump( checkPostalCode( $postalCode ) );

▶︎ 解説 1
コードを上から見ていきましょう。
$postalCode = '123-4567';
このコードは。$postalCodeという変数に、123-4567 を代入しています。
これが、今回の郵便番号です。
▶︎ 解説 2
function checkPostalCode( $str ) {
・
・
・
}
こちらで、function (関数)を作ります。
名前は、checkPostalCodeです。命名は自由ですが、今回の場合は、
郵便番号をチェックするので、この名前です。
▶︎ 解説 3
function checkPostalCode( $str ) {
$replaced = str_replace( '-', '', $str );
・
・
}
関数の処理内容を追加します。
桁数を確認する際に、郵便番号の「ハイフン」が邪魔なので、取り除きます。
$replaced という変数に、str_replace( ‘ – ‘ , ‘ ‘ , $str ) を格納します。
str_replace( )は、「置き換え」の機能を持った、関数でした。
( )内の内容は、
‘ – ‘ ハイフンを検索して、
‘ ‘ 空白に置き換える、
検索元は、$strの文字列です。
検索元の$strは、関数の引数の$strです。
var_dump( checkPostalCode( $postalCode ) );
ここで、checkPostalCode( )に、引数$postalCodeを設定します。
つまり、$str = $postalCode になります。
▶︎ 解説 4
さらに関数の処理内容を追加します。
function checkPostalCode( $str ) {
$replaced = str_replace( '-', '', $str );
$length = strlen( $replaced );
$length という変数に strlen( $replaced ) を代入します。
strlen( ) はstring(文字列)のlength(長さ)を返す関数でした。
$replaced は、ハイフンが空白に置き換えられた状態の、
$postalCodeが入っていますので、
$length は 「7」が代入されてることになります。
▶︎ 解説 5
さらに、関数の処理に中に、if文が追加されて、条件分岐を設定します。
function checkPostalCode( $str ) {
$replaced = str_replace( '-', '', $str );
$length = strlen( $replaced );
if ( $length === 7 ) {
return true;
}
return false;
}
if ( $length === 7 ) と書いているので、
もし、文字の長さが、7 と一致したら、という条件を設定しています。
もし、条件と一致しら場合の処理として、
return true; と書かれていますから、true(真)を返す という処理です。
if文の外側に、return false; と書いてあるのは、if文ないの条件に合わない場合は、false(偽)を返す という処理です。
▶︎ 解説 6
ここまでの、処理結果をvar_dumpで見てみましょう!
var_dump( checkPostalCode( $postalCode ) );
その結果は、bool( true ) となります。

boolとは、真偽値のことです。
真偽値で、true(真)が返されていることが確認できます。
つまり、
$postalCode の
ハイフンを取り除いた文字数は、「7」と === であるということです。
これで、$postalCode が 7桁であることが確認でき、
郵便番号であることを確認することができます。
【 まとめ 】
関数を自作しました。
プログラミングにおいて、人間の都合のいいように、何かを判定したりといったことが容易されているわけではありません。
物事の特性を理解して、どうやって見分けるのかということを、
考えるたりすることで、
プログラムを組むことができます。
楽しいかどうかを判定する場合、
楽しさとはどういった、数値でなのかとか、そういったことを考えるということです!!