PHP 関数の基本「組み込み(ビルトイン)関数」〜未経験の為のPHPプログラミング講座〜

今回は関数の紹介をします。
関数の中でも「組み込み(ビルトイン)関数」と言ってPHPが標準で持っている関数の紹介です。
関数とは?
関数とは値(引数)を与えることによって、決められた処理を行いその結果を返す機能のことを言います。
中でも組み込み関数はPHPが標準で搭載している機能なのでどこからでも利用可能です。
組み込み関数以外には「ユーザー定義関数」がありプログラマが自由に関数を作成・利用することができます。
関数の利用方法
配列の数を数えることができるcount関数で解説します。
関数を利用するための構文は以下のようになります。
1 2 3 4 5 6 7 8 9 10 | <?php // 戻り値 = 関数名( 引数, ..... ); // 例 配列の数をカウントする count()関数の利用 $array = array( '山田', '佐藤', '田中' ); $num = count( $array ); echo $num ?> |
1 | 3 |
引数が複数ある場合は「,」カンマ区切りで記述します。
組み込み(ビルトイン)関数
では組み込み(ビルトイン)関数をいくつか紹介します。
ここで紹介する以外にも様々な組み込み(ビルトイン)関数があります。
プログラミングをする上で関数を知っているか、知らないかでかなり差がつきますので、最初はプログラミングしたい内容・機能の関数があるかリファレンスを確認することをお勧めします。
print関数
print関数は引数に与えられた文字列を出力するための関数です。
1 2 3 4 5 6 7 | <?php $str = 'ハローワールド'; print( $str ); // 結果 ハローワールド |
mb_strlen関数
mb_strlen関数は文字列の長さを取得するための関数です。
1 2 3 4 5 6 7 8 9 10 | <?php $str = 'アイウエオ'; $num = mb_strlen( $str ); echo $num; ?> // 結果 5 |
1 2 3 4 5 6 7 8 9 10 11 | <?php $str = 'アイウエオ'; $enc = 'UTF-8'; $num = mb_strlen( $str, $enc ); echo $num; ?> // 結果 5 |
date関数
現在の年月日時分秒を取得できる関数です。
1 2 3 4 5 6 7 8 | <?php echo date('Y-m-d h:i:s'); // 結果 2020-08-17 22:00:00 ?> |
explode関数
explode関数は、文字列を与えられた文字列で分割し配列で返す関数です。
explode( ‘分割する文字’ , ‘元の文字列’ );
1 2 3 4 5 6 7 8 9 | <?php $tel = '080-1111-2222'; $tel_arr = explode( '-', $tel ); print_r( $tel_arr ); // 結果 Array ( [0] => 080 [1] => 1111 [2] => 2222 ) |
implode関数
implode関数は、explode関数の逆のイメージで、配列を与えられた文字列で結合し文字列で返す関数です。
implode( ‘結合する文字’ , ‘配列’ );
1 2 3 4 5 6 7 8 9 10 11 | <?php $tel[] = '080'; $tel[] = '1111'; $tel[] = '2222'; $tel_str = implode( '-', $tel ); echo $tel_str; // 結果 080-1111-2222 |
file_get_contents関数
file_get_contents関数は、指定のURLにアクセスしソースコードを取得することができます。
クレジット決済のAPIで決済が完了したかなどの戻り値を取得し処理したり、スクレイピングなどに利用可能です
implode( ‘結合する文字’ , ‘配列’ );
1 2 3 4 5 6 7 8 9 | <?php $url = 'https://www.programming-se.com'; $code = file_get_contents( $url ); echo $code; // 結果 ※指定のURLのページが表示されます。 |
htmlspecialchars関数
htmlspecialchars関数は、HTMLの特殊な文字列「<、>、”、’、&」などをエンティティ(無効化し別の文字列「<や>」に置き換え)します。
htmlspecialchars( ‘文字列’ , ‘フラグ’ , ‘エンコード’ );
1 2 3 4 5 6 7 8 9 | <?php $script = '<script>alert("あああ");</script>'; $code = htmlspecialchars( $url ); echo $code; // 結果 <script>alert("あああ");</script> |
上記はそのまま表示されたかのように見えますが、htmlspecialchars関数を利用しないとJavaScriptが動作しアラートが表示されます。
置き換えられる文字
下記は、htmlspecialchars関数によって置き換えられる文字列の一覧です。"
(ダブルクォート)、'
(シングルクォート)の変換には第2引数に定数の設定が必要です。
変換される文字列 | 変換後の文字列 |
---|---|
& (アンパサンド) | & |
" (ダブルクォート) | ENT_NOQUOTES が指定されていない場合、" |
' (シングルクォート) | ENT_QUOTES が指定されている場合、' |
< (小なり) | < |
> (大なり) | > |
第2引数フラグ用の定数
"
(ダブルクォート)、'
(シングルクォート)の変換には第2引数に定数の設定が必要な説明をしましたが、以下が設定できる定数となります。
定数名 | 設定時のふるまい |
---|---|
ENT_COMPAT | ダブルクォートは変換しますがシングルクォートは変換しません。 |
ENT_QUOTES | シングルクォートとダブルクォートを共に変換します。 |
ENT_NOQUOTES | シングルクォートとダブルクォートは共に変換されません。 |
※上記以外にも設定可能な定数はいくつか存在します。
mb_convert_encoding関数
mb_convert_encoding関数は、与えられた文字列のテキストエンコードを変更する関数です。
関数名の頭にある「mb」はマルチバイトの意味となります。
文字化けなどが発生した場合は、まずここを確かめると良いと思います。
mb_convert_encoding( ‘文字列’ , ‘変更後のエンコード’ , ‘変更前のエンコード’ );
1 2 3 4 5 6 7 8 9 10 11 | <?php // 「山田太郎」の文字列のエンコードはShift_JISとする $str = '山田太郎'; // Shift_JISをUTF-8に変更 $str_enc = mb_convert_encoding($str, 'UTF-8', 'SJIS'); echo $str_enc; // 結果 山田太郎 |
第2引数、第3引数には文字のエンコードを入力しますが、第3引数は ‘auto’ もしくは「設定なし」でも可能です。
テキストエンコードの種類
テキストエンコードの種類は多数あります。以下一部を紹介します。
- SJIS
- EUC-JP
- UTF-8
- UTF-16
- sjis-win
- ISO-2022-JP
- CP932
まとめ
組み込み(ビルトイン)関数はここでは紹介し切れないほどたくさんあります。
組み込み(ビルトイン)関数の詳細はPHPリファレンスで紹介されています。日本語にも対応しているので、PHPプログラミングで困ったときはPHPリファレンスで調べるクセをつけるといいと思います。
S.E->お勧め記事;
- CrowdWorks 提案後、受注に繋がりました。提案〜契約までの流れを解説
- PHPフレームワーク「Laravel」ディレクティブ-繰り返し処理(ループ処理)-
- CrowdWorks いつの間にか「プロクラウドワーカー」になっていた
- XSERVERにSSHを利用してLaravel環境を構築する
- Panic Nova 購入から1年が過ぎライセンスの更新時期の注意点
- macOS Monterey にアップデート後、composerやhomebrewでenv: php: No such file or directoryが出る
- Shopify APIを利用して在庫管理を行う
- PHP フレームワーク Laravel ディレクティブ – ループ変数 $loop –
- プログラマー になる為に必要な プログラミング以外 の知識・スキル
S.E->PR;
チームのタスク管理ツール【backlog】
FREENANCE(フリーナンス)
S.E->Weekly Ranking;
S.E->プロフィール;

