ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- EJS 完全ガイド — Node.js テンプレートエンジン 2026-05-18 01:50:54
- jQuery HTML/CSS 操作完全ガイド — DOM 操作の決定版 2026-05-18 01:50:54
- Vue.js でナビゲーションの現在ページをハイライトする方法 2026-05-18 01:50:54
- JavaScript のみで form を POST 送信する方法完全ガイド 2026-05-18 01:50:54
- jQuery 概要と現代の代替フレームワーク完全ガイド 2026-05-18 01:50:54
- Laravel バリデーションの日本語化完全ガイド 2026-05-18 01:50:54
- Laravel Artisan コマンド一覧完全リファレンス 2026-05-18 01:50:54
- Laravel ルート認証化完全ガイド — middleware と Gate 2026-05-18 01:50:54
- jQuery の導入方法完全ガイド — CDN/npm/Webpack 2026-05-18 01:50:54
- Laravel メンテナンスモード完全ガイド 2026-05-18 01:50:54
- Laravel Query Builder の集約関数 (count/max/avg) 完全ガイド 2026-05-18 01:50:53
- SQL LIMIT 句完全ガイド — ページネーションと挙動 2026-05-18 01:50:53
- Django Model の定義方法完全ガイド — フィールド型と Meta 2026-05-18 01:50:53
- DB インデックスの再作成方法完全ガイド 2026-05-18 01:50:53
- Django マイグレーションファイル作成完全ガイド 2026-05-18 01:50:53
コメントを削除してもよろしいでしょうか?