2
0

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での開発にこれからチャレンジする方向けに、基本的な記法をまとめてみました。Webアプリケーション開発でよく使う要素に絞って解説しますので、ぜひ参考にしてみてください!

1. PHPコードの基本構造

PHPのコードは、特別なタグ の間に記述します。HTMLファイルの中に埋め込むこともできます。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>PHP基本記法</title>
  </head>
  <body>
    <h1>PHPの基本</h1>

    <?php
    // ここにPHPコードを書きます
    echo "Hello, world!"; // 画面に「Hello, world!」と表示
    ?>

    <p>これはHTMLの段落です。</p>

    <?php
    echo "<p>PHPから出力された段落です。</p>";
    ?>
  </body>
</html>
  • <?php: PHPコードの開始タグ
  • ?>: PHPコードの終了タグ。PHPファイル全体がPHPコードのみで構成される場合は、この終了タグを省略するのが一般的に推奨されています。これにより、意図しない空白文字の出力やエラーを防ぐことができます
  • //または#: 1行コメント
  • /* ... */: 複数行コメント

2. 変数とデータ型

データを格納するために変数を使います。PHPの変数は必ず$(ドル記号)で始まり、データ型を明示的に宣言する必要はありません。PHPが自動的にデータ型を判断します(動的型付け)。

<?php
// 文字列 (String)
$name = "山田太郎";
$message = 'こんにちは、PHP!';

// 整数 (Integer)
$age = 30;
$count = 100;

// 浮動小数点数 (Float / Double)
$price = 123.45;
$pi = 3.14159;

// 論理値 (Boolean)
$isStudent = true;  // 真
$hasError = false;  // 偽

// 配列 (Array)
$colors = ["red", "green", "blue"]; // 0から始まるインデックス配列
$person = [
    "name" => "田中",
    "age" => 25,
    "city" => "東京"
]; // 連想配列

// オブジェクト (Object) - クラスのインスタンス
// この時点ではクラス定義がないので、例として標準クラスのインスタンスを挙げています。
$data = new stdClass();
$data->id = 1;
$data->item = "サンプル商品";

echo "名前: " . $name . "<br>";
echo "年齢: " . $age . "歳<br>";
echo "色は " . $colors[0] . " と " . $colors[2] . " です。<br>";
echo "田中さんの年齢は " . $person["age"] . " 歳です。<br>";
?>
  • 文字列: シングルクォーテーション (') またはダブルクォーテーション (") で囲みます
    • ダブルクォーテーション内では変数が展開されます(例: "私の名前は{$name}です。"
  • 配列: []またはarray()で定義します。数値のインデックス(0から始まる)または文字列のキー(連想配列)を持ちます

3. 出力

画面に情報を表示するには主にechoまたはprintを使います。

<?php
$item = "リンゴ";
$quantity = 3;

echo "購入品: " . $item . "<br>"; // 文字列結合は「.」(ドット)
echo "数量: $quantity 個<br>"; // ダブルクォーテーション内では変数が展開される

print "PHPは楽しい!<br>";

// 変数の内容やデータ型をデバッグ用に詳細表示したい場合
var_dump($item);      // $item の型と値
echo "<br>";
var_dump($colors);    // $colors 配列の構造
?>
  • echo: 複数の引数を,で区切って渡すこともできます(ただしあまり一般的ではありません)戻り値はありません
  • print: 戻り値が常に1で、echoよりもわずかに遅いですが、ほとんど体感できる差はありません
  • var_dump(): 変数の型、値、配列やオブジェクトの詳細な構造をデバッグ用に表示するのに非常に便利です

4. 制御構造

プログラムの実行フローを制御します。

条件分岐 (if, else if, else)

特定の条件に基づいて処理を分岐させます。

<?php
$score = 75;

if ($score >= 80) {
    echo "評価: 優<br>";
} elseif ($score >= 60) {
    echo "評価: 良<br>";
} else {
    echo "評価: 可<br>";
}

// 三項演算子 (簡潔な条件分岐)
$status = ($score >= 60) ? "合格" : "不合格";
echo "結果: " . $status . "<br>";
?>

繰り返し (for, while, foreach)

同じ処理を複数回実行します。

<?php
// for ループ: 回数が決まっている場合に便利
for ($i = 0; $i < 5; $i++) {
    echo "forループ: " . $i . "回目<br>";
}

// while ループ: 条件が真である間繰り返す
$count = 0;
while ($count < 3) {
    echo "whileループ: " . $count . "回目<br>";
    $count++; // カウンタを忘れずにインクリメント
}

// foreach ループ: 配列やオブジェクトの要素を順に処理するのに最適
$fruits = ["apple", "banana", "cherry"];
foreach ($fruits as $fruit) {
    echo "果物: " . $fruit . "<br>";
}

// キーと値の両方を取得する場合
$students = ["A" => "佐藤", "B" => "鈴木", "C" => "高橋"];
foreach ($students as $class => $name) {
    echo "クラス " . $class . " の生徒: " . $name . "<br>";
}
?>

5. 関数

特定の処理をひとまとまりにして、名前をつけて再利用できるようにしたものです。

<?php
// 引数なし、戻り値なしの関数
function sayHello() {
    echo "こんにちは、世界!<br>";
}
sayHello(); // 関数の呼び出し

// 引数あり、戻り値なしの関数
function greet($name) {
    echo "ようこそ、" . $name . "さん!<br>";
}
greet("PHPユーザー");

// 引数あり、戻り値ありの関数
function addNumbers($num1, $num2) {
    $sum = $num1 + $num2;
    return $sum; // 結果を返す
}
$result = addNumbers(15, 25);
echo "合計: " . $result . "<br>"; // 出力: 合計: 40

// デフォルト引数
function calculatePrice($basePrice, $taxRate = 0.10) { // $taxRateはデフォルトで0.10
    return $basePrice * (1 + $taxRate);
}
echo "税込み価格 (デフォルト税率): " . calculatePrice(1000) . "円<br>";
echo "税込み価格 (税率5%): " . calculatePrice(1000, 0.05) . "円<br>";
?>

6. オブジェクト指向プログラミング (OOP) の基礎

PHPはオブジェクト指向に対応しており、大規模なアプリケーション開発では必須の概念です。

  • クラス (Class): オブジェクトを作成するための設計図です
  • オブジェクト (Object / インスタンス): クラスから生成された具体的な実体です
  • プロパティ (Property): オブジェクトが持つデータ(変数)です
  • メソッド (Method): オブジェクトが持つ機能(関数)です
<?php
class Product {
    // プロパティ
    public $name;
    public $price;

    // コンストラクタ: オブジェクトが生成されるときに自動的に実行されるメソッド
    public function __construct($name, $price) {
        $this->name = $name;
        $this->price = $price;
        echo "新しい商品「" . $this->name . "」が登録されました。<br>";
    }

    // メソッド
    public function getInfo() {
        return "商品名: " . $this->name . ", 価格: " . $this->price . "円";
    }

    public function applyDiscount($discountRate) {
        $this->price = $this->price * (1 - $discountRate);
    }
}

// オブジェクト(インスタンス)の生成
$item1 = new Product("ノートPC", 80000);
$item2 = new Product("マウス", 2500);

// メソッドの呼び出し
echo $item1->getInfo() . "<br>"; // 出力: 商品名: ノートPC, 価格: 80000円

// プロパティへのアクセス(直接変更も可能)
$item2->price = 2000;
echo $item2->getInfo() . "<br>"; // 出力: 商品名: マウス, 価格: 2000円

// 割引を適用
$item1->applyDiscount(0.1); // 10%オフ
echo $item1->getInfo() . " (割引後)<br>";
?>

まとめ

これらがPHPの基本的な記法です。最初は覚えることが多いかもしれませんが、実際にコードを書いて動かしてみることが一番の習得方法です。

  • まずはこれらの記法を理解し、簡単なスクリプトを書いてみましょう!
  • 次に、参加するプロジェクトで使われているPHPフレームワーク(LaravelやSymfonyなど)があれば、そのフレームワーク特有の記法や構造を学ぶとよりスムーズに開発に入っていけます!
  • そして、ComposerやGitの基本的な使い方もマスターすると良いと思います!
2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?