PHP 関数・正規表現の基本

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); // 結果:5mb_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); // 結果:2str_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の関数・正規表現まとめ
正規表現に関しては、複雑なパターンも多いですが、基本を押さえておくことで効率よく文字列操作ができるようになります。
まずはシンプルな使い方から慣れて、徐々に応用へと広げていくのがおすすめです。

カスタマイズに困ったらお気軽にご相談を!
- 「ちょっとしたCSSの調整だけお願いしたい」
- 「不具合を直してほしい」
料金は3,000円〜、お支払いは銀行振込・Amazonギフトカードなど柔軟に対応してます🤔
お気軽にコメントどうぞ