1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHP学習記録】完全初心者が1日でマスターしたPHP基礎概念8選

Posted at

はじめに

この記事で分かること:

  • PHPの基本構文から関数まで、1日で学べる実用的な知識
  • 実際に動かせるサンプルコード付きの解説
  • 初心者が躓きやすいポイントとその対策

想定読者: 他言語経験ありのエンジニア・PHP学習を始めたい方
所要時間: 5分で読める

背景・きっかけ

エンジニアとして働いている私ですが、これまでPHPに触れる機会がありませんでした。
「PHPの基本構文は他の言語とどう違うの?」「1日でどのレベルまで習得できるの?」
そんな疑問を持つ方のために、1日の学習記録をまとめました。

他の言語経験がある中でのPHP特有の書き方や、
「これは他の言語より便利!」と感じた部分も含めて、
実践的な学習体験をお伝えします。

1. Hello World - PHPの第一歩

基本的な書き方

<?php
echo "Hello, PHP World!\n";
echo "PHP Version: " . phpversion() . "\n";
echo "今日からPHP学習開始!\n";
?>

学んだポイント:

  • PHPコードは <?php で始まり ?> で終わる
  • echo で文字列を出力
  • 文字列の連結は .(ドット)を使用
  • \n で改行

初心者Tips

  • 最初は ?> を忘れがち → IDE(VSCode等)を使うと自動補完してくれる
  • エラーが出たら、まず構文エラーをチェック

2. 変数とデータ型の理解

基本的な変数の使い方

<?php
// 変数は $ マークから始める
$name = "太郎";              // 文字列 (string)
$age = 25;                   // 整数 (integer)  
$height = 175.5;             // 浮動小数点数 (float)
$isStudent = true;           // 真偽値 (boolean)
$hobby = null;               // null値

// 変数の中身を表示
echo "名前: " . $name . "\n";
echo "年齢: " . $age . "歳\n";
echo "身長: " . $height . "cm\n";

// データ型を確認
echo "\$name の型: " . gettype($name) . "\n";
?>

重要な発見:

  • PHPは動的型付け言語 → 型を明示的に宣言する必要がない
  • gettype() 関数でデータ型を確認できる
  • 変数名は必ず $ から始まる

躓きポイント

  • $ を忘れがち → エラーの原因No.1
  • 文字列と数値の混在 → PHPは自動的に型変換してくれる(便利!)

3. 配列操作をマスター

インデックス配列

<?php
$fruits = ["apple", "banana", "orange", "grape"];

// 配列の要素にアクセス
echo "最初の果物: " . $fruits[0] . "\n";
echo "果物の種類数: " . count($fruits) . "\n";

// 全要素を表示
foreach ($fruits as $fruit) {
    echo "- " . $fruit . "\n";
}

// 要素を追加
$fruits[] = "mango";  // 末尾に追加
array_push($fruits, "kiwi");  // 関数を使って追加
?>

連想配列(重要!)

<?php
$user = [
    "id" => 1,
    "name" => "田中太郎",
    "email" => "tanaka@example.com",
    "role" => "student"
];

echo "ユーザー名: " . $user["name"] . "\n";
echo "メール: " . $user["email"] . "\n";
?>

学習のポイント:

  • 配列のインデックスは0から始まる
  • 連想配列は実際の開発でよく使う → データベースから取得したデータの構造に似ている
  • foreach は配列操作の基本

4. 関数で処理を再利用

基本的な関数

<?php
// 挨拶する関数
function greet($name) {
    return "こんにちは、" . $name . "さん!";
}

// 関数の呼び出し
echo greet("shion") . "\n";
echo greet("田中太郎") . "\n";

// 計算を行う関数
function add($a, $b) {
    return $a + $b;
}

echo "10 + 5 = " . add(10, 5) . "\n";
?>

関数作成のメリット:

  • コードの再利用性が高まる
  • 複雑な処理を分割して管理できる
  • デバッグが楽になる

実践的な応用例

<?php
// ユーザー情報を検索する関数
function findUserById($users, $id) {
    foreach ($users as $user) {
        if ($user["id"] == $id) {
            return $user;
        }
    }
    return null;
}

// 成績の平均を計算する関数
function calculateAverage($grades) {
    $total = 0;
    foreach ($grades as $grade) {
        $total += $grade["score"];
    }
    return $total / count($grades);
}
?>

5. 文字列操作のテクニック

基本的な文字列操作

<?php
$text = "Hello, PHP World!";

echo "文字列の長さ: " . strlen($text) . "\n";
echo "大文字に変換: " . strtoupper($text) . "\n";
echo "小文字に変換: " . strtolower($text) . "\n";

// 文字列の分割
$fruits = "apple,banana,orange";
$fruitArray = explode(",", $fruits);
print_r($fruitArray);
?>

便利だった機能:

  • explode() で文字列を配列に分割
  • implode() で配列を文字列に結合
  • CSVデータの処理等に応用できそう

6. 条件分岐とループ処理

if文とforeach文の組み合わせ

<?php
$scores = [95, 88, 76, 82, 94];

foreach ($scores as $index => $score) {
    if ($score >= 90) {
        echo "科目" . ($index + 1) . ": " . $score . "点 (優秀!)\n";
    } elseif ($score >= 80) {
        echo "科目" . ($index + 1) . ": " . $score . "点 (良好)\n";
    } else {
        echo "科目" . ($index + 1) . ": " . $score . "点 (要努力)\n";
    }
}
?>

7. スコープの理解

グローバル変数とローカル変数

<?php
$globalVar = "グローバル変数";

function testScope() {
    $localVar = "ローカル変数";
    global $globalVar;  // グローバル変数にアクセス
    
    echo $globalVar . "\n";
    echo $localVar . "\n";
}

testScope();
// echo $localVar;  // エラー!関数外からアクセス不可
?>

重要な概念:

  • 関数内で定義した変数は関数外から参照できない
  • global キーワードでグローバル変数にアクセス可能
  • 変数のスコープを理解することでバグを防げる

8. 総合システムの構築

1日の学習の集大成として、複数の管理システムを作成しました。

🏗️ 構築したシステム一覧

1. 包括的データ管理システム(comprehensive_system.php)

  • ユーザー管理・タスク管理・成績管理の統合
  • 多次元配列でのデータ構造設計
  • レポート生成機能

2. 分析システム(analytics_system.php)

  • ユーザー生産性統計
  • 科目別パフォーマンス分析
  • CSVバックアップ機能
<?php
// 生産性統計の例
function getUserProductivityStats($tasks, $userId) {
    $userTasks = getTasksByUserId($tasks, $userId);
    
    $stats = [
        "total_tasks" => count($userTasks),
        "completed" => 0,
        "completion_rate" => 0
    ];
    
    foreach ($userTasks as $task) {
        if ($task["status"] == "completed") {
            $stats["completed"]++;
        }
    }
    
    if ($stats["total_tasks"] > 0) {
        $stats["completion_rate"] = ($stats["completed"] / $stats["total_tasks"]) * 100;
    }
    
    return $stats;
}
?>

3. 検索システム(search_system.php)

  • キーワードベースのユーザー検索
  • タスクの優先度フィルタリング
  • 期限切れタスクの抽出

4. 高機能計算機(calculator.php)

  • 基本四則演算 + 高度な計算(べき乗、複利計算)
  • 計算履歴管理
  • 実用計算(BMI、消費税、円の面積)

5. 成績管理システム(grade_system.php)

  • 科目別成績管理
  • クラス平均の自動計算
  • 成績ランキング機能

6. ショッピングリスト管理(shopping_list.php)

  • カテゴリ別商品管理
  • 商品検索機能
  • 動的なリスト追加機能

技術的な学習ポイント

データ構造の設計:

// 階層的なデータ構造
$shoppingList = [
    "野菜" => ["トマト", "きゅうり", "レタス"],
    "肉類" => ["鶏肉", "豚肉", "牛肉"],
    "調味料" => ["醤油", "味噌", "塩"]
];

関数の活用:

// 検索・フィルタリング関数
function filterTasksByPriority($tasks, $priority) {
    $results = [];
    foreach ($tasks as $task) {
        if ($task["priority"] == $priority) {
            $results[] = $task;
        }
    }
    return $results;
}

エラーハンドリング:

function divide($a, $b) {
    if ($b == 0) {
        return "エラー: 0で割ることはできません";
    }
    return $a / $b;
}

まとめ

1日で学習した重要ポイント

  1. 変数とデータ型: PHPの基本構文を理解
  2. 配列操作: インデックス配列と連想配列の使い分け
  3. 関数作成: 処理の再利用とコードの整理

次のアクション提案

  • Laravel学習の準備: フレームワークへのステップアップ
  • データベース連携: MySQL等との組み合わせ
  • Webアプリケーション開発: 実際のプロジェクト作成

おすすめ学習リソース

おわりに

他言語の経験がある中で、1日でここまでPHPの特徴を理解することができました。
最初は「なぜ$マークが必要?」「配列の書き方が独特」と感じましたが、
実際に書いてみると、PHPの柔軟性と実用性を体感できました。

学習のコツ:

  • エラーを恐れずにとりあえず書いてみる
  • 一つずつ確実に理解してから次に進む
  • 実際に動くものを作って達成感を得る

これからPHPを学ぶ方の参考になれば嬉しいです!
質問やフィードバックがあれば、お気軽にコメントください。

次回予告: Laravel入門編をお届け予定です 🔥

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?