PHPの関数と正規表現の基本
関数
デフォルト引数値
function 関数名(引数 = デフォルト値) { ... }
function job($jobTitle = "会社員") {
return $jobTitle;
}
echo job("公務員"); // 結果:公務員
echo job(); // 結果:会社員
必須引数とデフォルト引数を混在させる場合は、デフォルト引数を必須引数の右側に書く必要があります。
// NG
function 関数名(引数 = デフォルト値, 必須引数) { ... }
// OK
function 関数名(必須引数, 引数 = デフォルト値) { ... }
参照渡し
引数の変数の前に&
をつけると引数の参照渡しになります。
// 値渡しの関数:引数のコピーを受け取り、元の変数は変更されない
function changeJob($job) {
$job = "会社員";
}
// 参照渡しの関数:引数を参照で受け取り、元の変数を変更する
function changeJobRef(&$job) {
$job = "自営業";
}
$my_job = "公務員";
changeJob($my_job);
echo $my_job; // 結果:公務員
changeJobRef($my_job);
echo $my_job; // 結果:自営業
値渡しは、関数内で変数を変更しても元の値は変わりません。
一方、参照渡しは、関数の中から直接元の変数を書き換えるのと同じ意味になります。
文字列に関する関数
mb_strlen:文字列の長さを求める
mb_strlen関数で文字列の長さを求めます。
mb_strlen(文字列)
$str = "あいうえお";
echo mb_strlen($str); // 結果:5
mb_substr:文字列を取り出す
mb_substr関数は、指定された範囲の文字列を取り出します。
mb_substr(文字列, 開始位置, 長さ)
$str = "あいうえお";
echo mb_substr($str , 2, 2); // 結果:うえ
mb_strpos:部分文字列の位置を検索
mb_strpos関数は、指定した文字列が何文字目に含まれるかを探し出します。
mb_strpos(文字列, 探し出したい文字列)
$str = "あいうえお";
$srch = "うえ"
echo mb_strpos($str, $srch); // 結果:2
str_replace:文字列の置き換え
str_replace関数は、文字列の置き換えを行います。
str_replace("置換したい文字", "置換後の文字", "対象の文字列");
$str = "あいうえお";
echo str_replace("いうえお", "りがとう", $str); // 結果:ありがとう
正規表現
メタ文字 | 意味 |
---|---|
. | 任意の1文字 |
^ | 〜ではじまる([ ]内で使用すると除外を意味する) |
$ | 〜で終わる |
– | 文字の範囲指定 |
| | 又は |
* | 直前の文字を0回以上繰り返す |
+ | 直前の文字を1回以上繰り返す |
? | 直前の文字がない、またはある |
( | グループ化の開始 |
) | グループ化の終了 |
{ | 繰り返す回数指定の開始 |
} | 繰り返す回数指定の終了 |
[ | パターン定義の開始 |
] | パターン定義の終了 |
正規表現の例
[abc]
a、b、cいずれかの1文字を表します。
[ ]の中に複数の文字列を記述すると、そのいずれかに該当する正規表現となります。
- 該当する例:a、b、c
- 該当しない例:aa、d、bc
[^abc]
a、b、c以外の1文字を表します。
^は通常「〜ではじまる」を意味しますが、[ ]内で使用すると除外を意味します。
- 該当する例:d、e
- 該当しない例:dd、a、b、c
[A-Z]
大文字のアルファベット1文字。
AからZまでの範囲の全てを表します。
- 該当する例:A、B、C
- 該当しない例:a、BB、AB
[a-zA-Z0-9]
アルファベットか数字の1文字を表します。
該当する例:A、a、9
該当しない例:AA、1B、10
^東京.*
「東京」ではじまる文字列を表します。
^は文字列の先頭、.は任意の一文字、*はそれが0文字以上続くことを表します。
該当する例:東京都、東京タワー、東京大学
該当しない例:埼玉県、西東京市
[0-9]+cm
「◯◯cm」という文字列を表します。
◯◯は0以上の整数が入り、[0-9]+が1文字以上の数値を表します。
該当する例:1cm、10cm、0cm
該当しない例:-1cm、cm、100
^[0-9]{3}-[0-9]{4}$
郵便番号の正規表現です。
該当する例:101-0051、171-0022
該当しない例:1710022、03-6837-4600
preg_match関数:正規表現と一致するかどうか
preg_match(パターン, 対象の文字列)
preg_match関数の正規表現のパターンは[/[A-Z]/]
のようにスラッシュ/
で囲みます。
対象の文字列が正規表現にマッチした場合に1
を返し、 マッチしなかった場合は0
を返します。
失敗した場合にfalse
を返します。
function match_zip($zip) {
if (preg_match("/^[0-9]{3}-[0-9]{4}$/", $zip) === 1) {
echo "正しい郵便番号形式です。\n";
} else {
echo "無効な郵便番号形式です。\n";
}
}
match_zip("101-0051"); // 正しい郵便番号形式です。
match_zip("1710022"); // 無効な郵便番号形式です。
PHPの基礎:まとめ
続きはこちら。

おすすめWEBスクール
WEB制作やWEBデザインを学びたいなら、SNSでも話題の「デイトラ」がおすすめ!
どのコースも10万円前後と業界最安値で、副業や転職に向けて十分なスキルを身につけることができます。
\ クリックしてジャンプ! /
お気軽にコメントどうぞ