CURRICULUM / APPENDIX D
付録D ─ PHPよく使われる関数一覧
PHPの主要な組み込み関数を、用途別にまとめたリファレンスです。
本編で使ったものには、該当する章へのリンクを添えています。
PHPには何千もの関数がありますが、Web開発で日常的に使うものは限られています。この一覧はその「よく使うもの」を集めたものです。
出力
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
echo |
文字列を出力する。関数ではなく言語構造 | echo "こんにちは"; |
01-05 |
print_r() |
変数の内容を人間が読める形で出力する。配列やオブジェクトの確認に便利 | print_r($arr); |
|
var_dump() |
変数の型と値を詳細に出力する。デバッグ用 | var_dump($x); |
01-07 |
変数の検査・型判定
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
isset() |
変数がセットされていて null でないかを判定する | if (isset($_POST['name'])) { ... } |
01-05 |
empty() |
変数が「空」かを判定する(未定義、null、空文字、0、空配列など) | if (empty($token)) { ... } |
02-05 |
is_array() |
値が配列かを判定する | is_array($data) |
|
is_string() |
値が文字列かを判定する | is_string($name) |
|
is_numeric() |
値が数値または数値文字列かを判定する | is_numeric("42") // true |
|
is_int() |
値が整数型かを判定する | is_int(42) // true |
|
is_null() |
値が null かを判定する | is_null($x) |
|
gettype() |
値の型名を文字列で返す | gettype(42) // "integer" |
型変換
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
intval() |
値を整数に変換する | intval("42abc") // 42 |
|
(int) キャスト |
値を整数に変換する(intval と同等) | (int)$_GET['page'] |
|
floatval() |
値を浮動小数点数に変換する | floatval("3.14") // 3.14 |
|
strval() |
値を文字列に変換する | strval(100) // "100" |
|
boolval() |
値を真偽値に変換する | boolval("") // false |
文字列
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
strlen() |
文字列のバイト数を返す | strlen("abc") // 3 |
|
mb_strlen() |
マルチバイト対応の文字数を返す | mb_strlen("日本語") // 3 |
|
trim() |
先頭と末尾の空白を除去する | trim(" abc ") // "abc" |
03-03 |
strtolower() |
全て小文字に変換する | strtolower("ABC") // "abc" |
|
strtoupper() |
全て大文字に変換する | strtoupper("abc") // "ABC" |
|
substr() |
文字列の一部を切り出す | substr("hello", 0, 3) // "hel" |
|
mb_substr() |
マルチバイト対応で文字列の一部を切り出す | mb_substr("日本語", 0, 2) // "日本" |
|
str_replace() |
文字列の一部を置換する | str_replace("a", "x", "abc") // "xbc" |
|
str_contains() |
指定文字列が含まれるかを判定する(PHP 8.0+) | str_contains("hello", "ell") // true |
|
str_starts_with() |
指定文字列で始まるかを判定する(PHP 8.0+) | str_starts_with("hello", "he") // true |
|
str_ends_with() |
指定文字列で終わるかを判定する(PHP 8.0+) | str_ends_with("hello", "lo") // true |
|
strpos() |
文字列の位置を返す(見つからなければ false) | strpos("abc", "b") // 1 |
|
explode() |
区切り文字で文字列を配列に分割する | explode(",", "a,b,c") // ["a","b","c"] |
|
implode() |
配列を区切り文字で結合して文字列にする | implode("-", ["a","b"]) // "a-b" |
|
sprintf() |
書式文字列に値を埋め込んだ文字列を返す | sprintf("ID: %d", 42) // "ID: 42" |
|
number_format() |
数値を桁区切りでフォーマットする | number_format(1234567) // "1,234,567" |
|
nl2br() |
改行文字を<br>タグに変換する |
nl2br("a\nb") |
配列
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
count() |
配列の要素数を返す | count([1, 2, 3]) // 3 |
|
in_array() |
指定値が配列に含まれるかを判定する | in_array("a", $arr, true) |
|
array_key_exists() |
指定キーが配列に存在するかを判定する | array_key_exists("name", $data) |
|
array_keys() |
配列のキーを全て返す | array_keys(["a" => 1]) // ["a"] |
|
array_values() |
配列の値を全て返す(キーを振り直す) | array_values($arr) |
|
array_merge() |
複数の配列を結合する | array_merge($a, $b) |
|
array_push() |
配列の末尾に要素を追加する | array_push($arr, "新しい値") |
|
array_pop() |
配列の末尾の要素を削除して返す | $last = array_pop($arr) |
|
array_shift() |
配列の先頭の要素を削除して返す | $first = array_shift($arr) |
|
array_unshift() |
配列の先頭に要素を追加する | array_unshift($arr, "先頭") |
|
array_slice() |
配列の一部を切り出す | array_slice($arr, 0, 3) |
|
array_splice() |
配列の一部を削除・置換する(元の配列を変更する) | array_splice($arr, 1, 2) |
|
array_search() |
指定値のキーを返す(見つからなければ false) | array_search("b", ["a","b","c"]) // 1 |
|
array_unique() |
重複を除去した配列を返す | array_unique([1,2,2,3]) // [1,2,3] |
|
array_reverse() |
配列の順序を逆にして返す | array_reverse([1,2,3]) // [3,2,1] |
|
array_map() |
各要素にコールバック関数を適用した新しい配列を返す | array_map('intval', $arr) |
|
array_filter() |
条件に一致する要素だけを残した配列を返す | array_filter($arr, fn($x) => $x > 0) |
|
array_column() |
多次元配列から特定カラムの値を取り出す | array_column($users, 'name') |
|
sort() |
配列を昇順にソートする(キーは振り直し) | sort($arr) |
|
usort() |
コールバック関数で配列をソートする | usort($arr, fn($a,$b) => $a - $b) |
|
array_sum() |
全要素の合計値を返す | array_sum([1,2,3]) // 6 |
|
range() |
連続した値の配列を生成する | range(1, 5) // [1,2,3,4,5] |
入力のバリデーション・サニタイズ
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
filter_var() |
値をフィルタリング・検証する。メールアドレスやURLの検証に使う | filter_var($email, FILTER_VALIDATE_EMAIL) |
02-01 |
htmlspecialchars() |
HTML特殊文字をエスケープする。XSS対策の基本 | htmlspecialchars($s, ENT_QUOTES, 'UTF-8') |
01-05, 02-03 |
strip_tags() |
文字列からHTMLタグを除去する | strip_tags($input) |
|
addslashes() |
引用符の前にバックスラッシュを付ける。SQLi対策には不十分(プリペアドを使うこと) | addslashes($str) |
02-02 |
preg_match() |
正規表現でパターンマッチを行う | preg_match('/^[0-9]+$/', $str) |
|
preg_replace() |
正規表現で文字列を置換する | preg_replace('/\s+/', ' ', $str) |
セキュリティ・暗号
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
password_hash() |
パスワードを安全にハッシュ化する(bcrypt) | password_hash($pw, PASSWORD_DEFAULT) |
02-04 |
password_verify() |
パスワードとハッシュが一致するかを検証する | password_verify($input, $hash) |
02-04 |
random_bytes() |
暗号学的に安全なランダムバイト列を生成する | random_bytes(32) |
02-05 |
bin2hex() |
バイナリデータを16進数文字列に変換する | bin2hex(random_bytes(16)) |
02-05 |
hash() |
指定アルゴリズムでハッシュ値を生成する | hash('sha256', $data) |
|
hash_equals() |
タイミング攻撃に強い文字列比較。トークン検証に使う | hash_equals($expected, $actual) |
02-05 |
random_int() |
暗号学的に安全なランダム整数を生成する | random_int(100000, 999999) |
セッション
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
session_start() |
セッションを開始する。$_SESSIONが使えるようになる | session_start(); |
02-04 |
session_regenerate_id() |
セッションIDを再生成する。セッション固定攻撃の対策 | session_regenerate_id(true); |
02-04 |
session_destroy() |
セッションデータを破棄する | session_destroy(); |
04-04 |
session_set_cookie_params() |
セッションCookieのパラメータを設定する | session_set_cookie_params(['httponly' => true]); |
02-04 |
$_SESSION |
セッション変数を読み書きするスーパーグローバル配列 | $_SESSION['user_id'] = $id; |
02-04 |
HTTPリクエスト・レスポンス
| 関数 / 変数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
$_GET |
URLパラメータを受け取るスーパーグローバル配列 | $page = $_GET['page']; |
01-05 |
$_POST |
フォーム送信データを受け取るスーパーグローバル配列 | $name = $_POST['name']; |
01-05 |
$_FILES |
アップロードされたファイルの情報を格納するスーパーグローバル配列 | $_FILES['photo']['tmp_name'] |
02-05 |
$_SERVER |
サーバー情報やリクエスト情報を格納するスーパーグローバル配列 | $_SERVER['REQUEST_METHOD'] |
03-03 |
$_COOKIE |
Cookieの値を受け取るスーパーグローバル配列 | $_COOKIE['remember_me'] |
|
header() |
HTTPヘッダーを送信する。リダイレクトに使うことが多い | header('Location: /mypage.php'); |
02-04 |
http_response_code() |
HTTPステータスコードを取得・設定する | http_response_code(404); |
|
setcookie() |
Cookieを送信する | setcookie('name', 'value', time()+3600); |
|
exit |
スクリプトの実行を終了する。header()の後に必須 | header('Location: /'); exit; |
02-04 |
JSON
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
json_encode() |
PHPの値をJSON文字列に変換する | json_encode($data, JSON_UNESCAPED_UNICODE) |
02-03 |
json_decode() |
JSON文字列をPHPの値に変換する | json_decode($json, true) |
日付・時刻
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
date() |
日時を書式文字列でフォーマットする | date('Y-m-d') // "2026-04-25" |
04-01 |
time() |
現在のUnixタイムスタンプ(秒)を返す | time() |
02-05 |
strtotime() |
日時の文字列をタイムスタンプに変換する | strtotime('+1 hour') |
|
mktime() |
指定した日時のタイムスタンプを生成する | mktime(0, 0, 0, 4, 25, 2026) |
|
new DateTime() |
日時オブジェクトを作成する。日付計算に便利 | new DateTime('2026-04-25') |
PDO(データベース)
| メソッド | 役割 | 使用例 | 本編 |
|---|---|---|---|
new PDO() |
データベース接続を作成する | new PDO($dsn, $user, $pass, $opts) |
|
prepare() |
SQLをプリペアドステートメントとして準備する。SQLi対策の基本 | $pdo->prepare("SELECT * FROM users WHERE id = ?") |
02-02 |
execute() |
プリペアドステートメントを実行する。パラメータを配列で渡す | $stmt->execute([$id]); |
02-02 |
fetch() |
結果セットから1行を取得する | $row = $stmt->fetch(); |
|
fetchAll() |
結果セットの全行を配列で取得する | $rows = $stmt->fetchAll(); |
03-03 |
rowCount() |
直前のSQL文で影響を受けた行数を返す | $stmt->rowCount() |
04-01 |
lastInsertId() |
直前のINSERTで生成されたIDを返す | $pdo->lastInsertId() |
|
beginTransaction() |
トランザクションを開始する | $pdo->beginTransaction(); |
04-01 |
commit() |
トランザクションを確定する | $pdo->commit(); |
04-01 |
rollBack() |
トランザクションを取り消す | $pdo->rollBack(); |
04-01 |
ファイル操作
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
file_get_contents() |
ファイルの内容を文字列として読み込む | file_get_contents('data.txt') |
|
file_put_contents() |
文字列をファイルに書き込む | file_put_contents('log.txt', $msg) |
|
file_exists() |
ファイルまたはディレクトリが存在するかを判定する | file_exists('/path/to/file') |
|
is_file() |
パスが通常のファイルかを判定する | is_file($path) |
|
is_dir() |
パスがディレクトリかを判定する | is_dir($path) |
|
move_uploaded_file() |
アップロードされたファイルを安全に移動する | move_uploaded_file($tmp, $dest) |
|
finfo_file() |
ファイルのMIMEタイプを判定する | finfo_file($finfo, $path) |
02-05 |
getimagesize() |
画像のサイズと形式を取得する。画像ファイルの検証に使える | getimagesize($path) |
02-05 |
basename() |
パスからファイル名部分を取り出す | basename('/var/www/index.php') // "index.php" |
|
pathinfo() |
パスの構成要素(ディレクトリ、ファイル名、拡張子)を返す | pathinfo($path, PATHINFO_EXTENSION) |
エラーとデバッグ
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
error_log() |
エラーメッセージをログに記録する。本番環境ではechoの代わりにこちらを使う | error_log("予約失敗: ID=$id"); |
04-01, 05-01 |
ini_get() |
PHP設定値を取得する | ini_get('display_errors') |
05-01 |
ini_set() |
PHP設定値を実行時に変更する | ini_set('display_errors', '0'); |
|
error_reporting() |
エラー報告レベルを設定する | error_reporting(E_ALL); |
|
try / catch |
例外を捕捉する。PDOやファイル操作のエラー処理に必須 | try { ... } catch (Exception $e) { ... } |
|
throw |
例外を発生させる | throw new Exception("不正な入力"); |
ファイルの読み込み
| 構文 | 役割 | 使用例 | 本編 |
|---|---|---|---|
require |
外部ファイルを読み込む。見つからなければ致命的エラー | require __DIR__ . '/config.php'; |
03-03 |
require_once |
同じファイルを二重に読み込まないようにする | require_once __DIR__ . '/auth.php'; |
|
include |
外部ファイルを読み込む。見つからなくても警告で続行する | include 'sidebar.php'; |
|
__DIR__ |
現在のファイルが置かれているディレクトリのパスを返すマジック定数 | __DIR__ . '/includes/config.php' |
数学
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
max() |
引数の中で最大の値を返す | max(1, 5, 3) // 5 |
|
min() |
引数の中で最小の値を返す | min(1, 5, 3) // 1 |
|
abs() |
絶対値を返す | abs(-7) // 7 |
|
round() |
四捨五入する | round(3.5) // 4 |
|
ceil() |
切り上げる | ceil(3.1) // 4 |
|
floor() |
切り捨てる | floor(3.9) // 3 |
URL・エンコーディング
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
urlencode() |
URLに含める文字列をエンコードする | urlencode("a&b") // "a%26b" |
|
urldecode() |
エンコードされたURLを元に戻す | urldecode("a%26b") // "a&b" |
|
base64_encode() |
データをBase64エンコードする | base64_encode($data) |
|
base64_decode() |
Base64をデコードする | base64_decode($str) |
|
http_build_query() |
配列からURLクエリ文字列を生成する | http_build_query(['page' => 2, 'sort' => 'new']) |
|
parse_url() |
URLを構成要素(スキーム、ホスト、パス等)に分解する | parse_url($url, PHP_URL_HOST) |
メール
| 関数 | 役割 | 使用例 | 本編 |
|---|---|---|---|
mail() |
メールを送信する。本番環境ではSMTPライブラリの方が信頼性が高い | mail($to, $subject, $body, $headers); |
|
mb_send_mail() |
マルチバイト対応でメールを送信する(日本語対応) | mb_send_mail($to, $subject, $body); |
使い方のヒント
この一覧を暗記する必要はありません。
「パスワードを安全に保存したい」と思ったとき、この付録を開いて password_hash() の行を見る。
「フォームの入力を安全に表示したい」と思ったとき、htmlspecialchars() の行を見る。
そうやって「引く」ための一覧です。
本編の該当章へのリンクを辿れば、その関数が実際にどう使われているかをコードの文脈で読み返すことができます。