ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
PHP の基本構造
基本データ型
| 型 | 例 | 備考 |
|---|---|---|
int | 42 | 32/64bit プラットフォーム依存 |
float | 3.14 | 倍精度浮動小数点 |
string | "hello" | シングル/ダブル/Heredoc/Nowdoc |
bool | true / false | 小文字推奨 |
array | [1, 2] | 添字/連想を区別しない |
object | new User() | クラスのインスタンス |
null | null | 値なし |
callable | クロージャ・関数名 | コールバック |
iterable | 配列 or Iterator | foreach 可能なもの |
配列(添字・連想)
// 添字配列
$fruits = ["apple", "banana", "cherry"];
echo $fruits[0]; // apple
$fruits[] = "orange"; // 末尾追加
count($fruits); // 4
// 連想配列
$user = [
"name" => "Taro",
"age" => 30,
"email" => "taro@example.com",
];
echo $user["name"];
// PHP 7.4+ スプレッド展開
$a = [1, 2, 3];
$b = [0, ...$a, 4]; // [0, 1, 2, 3, 4]
// foreach
foreach ($fruits as $fruit) {
echo $fruit;
}
foreach ($user as $key => $value) {
echo "$key = $value\n";
}
// 主要な配列関数
array_map(fn($x) => $x * 2, [1, 2, 3]); // [2, 4, 6]
array_filter([1, 2, 3, 4], fn($x) => $x % 2 === 0); // [2, 4]
array_reduce([1, 2, 3], fn($carry, $x) => $carry + $x, 0); // 6
in_array("apple", $fruits); // true
array_keys($user); // ["name", "age", "email"]
文字列
// シングル: 変数展開なし、 \n もそのまま
$s1 = 'Hello\n$name'; // 文字列 "Hello\n$name"
// ダブル: 変数展開あり、 エスケープ有効
$s2 = "Hello\n$name"; // 変数展開 + 改行
// Heredoc (ダブル相当)
$s3 = <<
制御フロー
// if / elseif / else
if ($score >= 90) {
$grade = "A";
} elseif ($score >= 80) {
$grade = "B";
} else {
$grade = "C";
}
// 三項演算子
$msg = $age >= 18 ? "成人" : "未成年";
// Null 合体 (PHP 7+)
$name = $_GET["name"] ?? "ゲスト";
// Null 合体代入 (PHP 7.4+)
$config["debug"] ??= false;
// switch
switch ($code) {
case 200: $msg = "OK"; break;
case 404: $msg = "Not Found"; break;
default: $msg = "Unknown";
}
// match 式 (PHP 8.0+) — 厳密比較、 値を返す
$msg = match($code) {
200, 201 => "OK",
404 => "Not Found",
500 => "Server Error",
default => "Unknown",
};
// for / while / foreach
for ($i = 0; $i < 10; $i++) { ... }
while ($n < 100) { ... }
foreach ($items as $key => $val) { ... }
関数
// 基本(型宣言推奨、 PHP 7+)
function add(int $a, int $b): int {
return $a + $b;
}
// デフォルト引数
function greet(string $name, string $msg = "Hello"): string {
return "$msg, $name!";
}
// Named arguments (PHP 8.0+)
greet(name: "Taro", msg: "Hi");
// 可変長引数
function total(int ...$nums): int {
return array_sum($nums);
}
total(1, 2, 3, 4); // 10
// アロー関数 (PHP 7.4+)
$double = fn(int $x) => $x * 2;
$double(5); // 10
// クロージャ (use で外部変数キャプチャ)
$prefix = "User: ";
$tag = function(string $name) use ($prefix) {
return $prefix . $name;
};
クラスと名前空間
name}";
}
public static function create(string $name): self {
return new self($name);
}
}
// 継承・インターフェース
interface Greeter {
public function greet(): string;
}
abstract class Animal {
abstract public function bark(): string;
}
class Dog extends Animal implements Greeter {
public function bark(): string { return "ワン"; }
public function greet(): string { return $this->bark(); }
}
名前空間と Composer autoload
PHP 8 の主要な新機能
| 機能 | バージョン | 例 |
|---|---|---|
| Named arguments | 8.0 | htmlspecialchars($s, double_encode: false) |
| Constructor promotion | 8.0 | __construct(public string $name) |
| match 式 | 8.0 | match($x) { 1 => ..., default => ... } |
| Nullsafe operator | 8.0 | $user?->profile?->name |
| Enums | 8.1 | enum Status { case Active; case Inactive; } |
| readonly プロパティ | 8.1 | public readonly int $id; |
| First-class callable syntax | 8.1 | $fn = strlen(...); |
| readonly classes | 8.2 | readonly class Point { ... } |
FAQ
Q: ?> 終了タグを書く / 書かない?
A: 純粋な PHP ファイルでは 書かない。 後ろの空白文字が headers already sent エラーの原因になります。
Q: require と require_once の違い?
A: _once 付きは多重読込防止。 ライブラリ読込は _once 推奨。 ただし autoload で完結するのがモダン。
Q: PHP 7 と 8 で書き方変える?
A: PHP 7.4 までサポート切れ済。 PHP 8.1+ を前提に readonly / enum / match を活用しましょう。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
同階層のページ
- インストール方法
- 文法
- Composerのインストール
- 内部関数
- フレームワーク
- エラー一覧
- 改行出力
- printとechoの違い
- シングルクォートとダブルクォートの違い
- returnとyieldの違い
- var_dumpをログ出力
- CSV読み込み
- 待機・処理の遅延
- ログファイルにエラーを出力する方法
- エラーログ出力関数
- URLパラメータの配列化
- empty, is_null. issetの判定比較表
- httpステータスコードの付与
- バージョンの確認
- php.ini
- APIを呼び出す方法
- 外部ファイルを呼び出す方法
- カンマ区切りの文字列を配列に変換
- 配列からランダムに値を取り出す方法
- Webスクレイピング
人気ページ
- 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
コメントを削除してもよろしいでしょうか?