ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は PHP の関数に関する記事です。関数とは、処理のまとまりに名前を付けて再利用できるようにしたブロックのことです。引数を受け取り、戻り値を返すことができます。
関数定義の基本
|
<?php |
関数定義の文法要素
| 要素 | 役割 |
|---|---|
function 名(...) | 関数を宣言 |
| 引数 | 関数に渡す値 (型宣言・既定値が可能) |
return | 戻り値を返す。書かなければ null |
| 戻り値型 | : int、: ?string 等で宣言 |
| スコープ | 関数内は独自のローカルスコープ |
型宣言 (PHP 7+)
|
function greet(string $name, int $times = 1): string { |
引数の主な機能
| 機能 | 例 |
|---|---|
| 既定値 | function f($x = 10) { ... } |
| 型宣言 | function f(int $x): int { ... } |
| nullable 型 | function f(?string $x) { ... } |
| 参照渡し | function f(&$x) { $x = 1; } |
| 可変長引数 | function f(...$args) { ... } |
| 名前付き引数 (PHP 8+) | f(name: "Taro", age: 20) |
| Union 型 (PHP 8+) | function f(int|string $x) { ... } |
| readonly プロパティ (PHP 8.1+) | コンストラクタで初期化のみ可 |
関数の種類
| 種類 | 説明 |
|---|---|
| ユーザ定義関数 | 自分で書く関数 |
| 組み込み関数 | PHP 標準 (strlen、array_map 等) |
| 無名関数 (クロージャ) | $f = function($x) { return $x * 2; }; |
| アロー関数 (PHP 7.4+) | $f = fn($x) => $x * 2; |
| メソッド | クラス内に定義する関数 |
| 静的メソッド | ClassName::method() で呼ぶ |
無名関数とアロー関数
|
// 無名関数 (use で外部変数を取り込む) |
高階関数 (関数を引数に)
|
$nums = [1, 2, 3, 4, 5]; |
スコープのルール
- 関数内で宣言した変数はローカルスコープ。関数外には影響しない
- 関数外の変数を関数内で使うには
globalや引数経由が必要 (globalはアンチパターン) - 無名関数では
useで外部変数を取り込む。アロー関数は自動でクロージャ - クラスメソッド内では
$thisが使える (静的メソッド除く)
戻り値の活用
- 早期 return でネストを浅く保つ
- 例外を投げる:
throw new InvalidArgumentException("...") - 複数値は連想配列またはクラスで返す
- PHP 8.0+ の match 式で値を返すスタイルが書きやすい
命名と設計の原則
- 動詞 + 目的語の命名:
fetchUser()、calculateTax() - 1 つの関数は1 つの責務に絞る
- 副作用 (DB 書込・ファイル書込) は関数名で明示する (
save、delete) - 引数は多くて 3〜4 個。多いなら配列やオブジェクトにまとめる
- PHP の標準ライブラリ関数名に紛れない命名を心がける
注意点
- 関数名は大文字小文字を区別しないが、定義時の表記に統一する
- 古い PHP のマジック引数 (
func_get_args) より、可変長引数 (...args) を使う - クロージャを大量に作るとメモリを食う。必要なら名前付き関数として分離
- PHP 8 では非推奨 / 削除された関数が増えている。古いコードの移行に注意
- Laravel / Symfony 等のフレームワークでは、関数よりクラスメソッドに分けるのが一般的
関連
- 親カテゴリ: 文法 (PHP)
- 関連: スーパーグローバル変数 / 内部関数
- PHP本体: PHP
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?