😸

PHP初心者向け - 知っておくべき構文やシンタックス(バックエンド向け)

に公開

お仕事で初めてphpを書くことになったが、phpについて全く知らなかったため、AI等を使い調べたことをまとめた記事になります。
どちらかというと、忘備録的な感じです。
情報が間違っている可能性もあるため、鵜呑みにしないでください。

スーパーグローバル変数

PHPには特別なスーパーグローバル変数が用意されており、これらはスクリプトのどの場所からでもアクセス可能です。

  • $_GET: URLパラメータで送られたデータを取得する。
  • $_POST: フォームから送信されたデータを取得する。
  • $_SESSION: ユーザーごとのデータをセッションとして保存する。
  • $_COOKIE: クライアント側に一時的にデータを保存する。
  • $_SERVER: サーバー情報やリクエスト情報を取得する。

例:

$name = $_GET['name'];
$password = $_POST['password'];

フォーム処理

フォームから送信されたデータを処理する方法です。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $email = $_POST["email"];
  $password = $_POST["password"];

  echo "Email: " . htmlspecialchars($email);
}
?>

セッション管理

セッションはユーザー情報やログイン状態をサーバーに保存する際に使用します。

<?php
session_start();

// セッション変数を設定する
$_SESSION['user_id'] = 123;

// セッション変数を取得する
$userId = $_SESSION['user_id'];

// セッションを削除する
session_destroy();
?>

データベース接続(PDO)

データベースとの接続にはPDOを使うことが推奨されています。

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test_db', 'user', 'pass');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $dbh->prepare("SELECT * FROM users WHERE id = :id");
    $stmt->execute([':id' => 1]);
    $user = $stmt->fetch();

    echo $user['name'];
} catch (PDOException $e) {
    echo "エラー: " . $e->getMessage();
}
?>

例外処理(エラー処理)

PHPには例外処理を行うための仕組みがあります。

<?php
try {
    $result = 10 / 0;
} catch (DivisionByZeroError $e) {
    echo "エラーが発生しました: " . $e->getMessage();
}
?>

名前空間(Namespace)

名前空間は、コードの衝突を防ぎ、コードを整理するためのものです。

<?php
namespace MyApp\Database;

class User {
    public function getName() {
        return "User Name";
    }
}

$user = new \MyApp\Database\User();
echo $user->getName();
?>

オートローディング

クラスファイルを自動的に読み込む仕組みです。主にComposerを利用します。

  • Composerを使ったオートロードの設定
// composer.json
{
    "autoload": {
        "psr-4": {
            "MyApp\\": "src/"
        }
    }
}
// 使用例
require 'vendor/autoload.php';

use MyApp\Database\User;

$user = new User();
echo $user->getName();

クラスとオブジェクト指向

バックエンドではオブジェクト指向プログラミングが広く使われます。

<?php
class User {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function greet() {
        return "Hello, " . $this->name;
    }
}

$user = new User("John");
echo $user->greet();
?>

JSONの取り扱い

API開発においてJSONは必須です。

<?php
$data = ["name" => "John", "age" => 30];

// JSONにエンコード
$json = json_encode($data);
echo $json;

// JSONをデコード
$decodedData = json_decode($json, true);
print_r($decodedData);
?>

Discussion