Newer
Older
hello-programmer-world / src / pages / php / 010-foundation.mdx
@h.sakamoto h.sakamoto 8 days ago 4 KB php
---
layout: "@/layouts/MarkdownLayout.astro"
---

import Toc from "../../components/Toc.astro";

export const title = "PHPとJavaScriptを比較";

# {title}

## TOC

## 変数

PHPの変数は、ドル記号 (`$`) で始まります。JavaScriptの`let`や`const`のような宣言キーワードは不要で、値を代入すると変数が作成されます。

```php
$name = "Alice";
$age = 30;

echo "名前: " . $name; // "名前: Alice" と表示
```

[より詳しい型や変数の使い方...](/reference/010-foundation-php#変数)

## 配列

PHPの配列は、複数の値を一つの変数にまとめて格納するために使います。JavaScriptの配列と似ていますが、PHPでは大きく分けて2種類の配列があります。

### 数値添字配列

インデックス(添字)が `0` から始まる数値の配列です。

```php
// 果物のリスト
$fruits = ["Apple", "Banana", "Cherry"];
echo $fruits[1]; // "Banana" と表示
```

### 連想配列

各値に、数値の代わりに文字列のキー(名前)を関連付けた配列です。オブジェクトのように、値に名前を付けて管理したい場合に便利です。

```php
// ユーザーの情報
$user = [
  "name" => "Bob",
  "age" => 25,
  "city" => "Tokyo"
];
echo $user["name"]; // "Bob" と表示
```

[配列の詳しい使い方...](/reference/010-foundation-php#配列-array)

## 関数

関数は、特定の処理をひとまとめにしたものです。`function` キーワードを使って定義し、名前を付けて呼び出すことで、同じ処理を何度も再利用できます。

```php
// 2つの数値を受け取って、その合計を返す関数
function add($a, $b) {
  return $a + $b;
}

// 関数を呼び出す
$sum = add(5, 3);
echo $sum; // "8" と表示
```

[関数の詳しい使い方...](/reference/010-foundation-php#関数)

## if文による条件分岐

プログラムの流れを条件によって変えたい場合、`if`文を使います。
丸括弧 `()` の中に条件を書き、その条件が満たされる(`true`になる)場合だけ、波括弧 `{}` の中の処理が実行されます。

```php
$score = 85;

// もし score が 80以上なら
if ($score >= 80) {
  echo "合格!";
}
```

条件が満たされなかった場合の処理は `else` を使って書きます。さらに、別の条件を続けたい場合は `elseif` を使います。

```php
$score = 75;

if ($score >= 80) {
  echo "合格!";
} elseif ($score >= 60) {
  echo "惜しい!あと少し!";
} else {
  echo "不合格です。";
}
```

JavaScriptと同様に、PHPにも `==` と `===` の2種類の比較があります。
思わぬバグを防ぐため、型まで厳密に比較する `===` を使うことが推奨されます。

## for / foreach による繰り返し

配列などのまとまったデータに対して、同じ処理を順番に実行したい場合は繰り返し処理を使います。

### for文

昔ながらの書き方で、指定した回数だけ処理を繰り返します。配列の要素数だけ繰り返すことで、すべての要素にアクセスできます。
`count()` は配列の要素数を返す関数です。

```php
$prices = [1290, 859, 1247];
$total = 0;

for ($i = 0; $i < count($prices); $i++) {
  $total = $total + $prices[$i];
}

echo "合計: " . $total; // 合計: 3396
```

### foreach文

PHPで配列の全要素を順番に処理する場合、`foreach`文を使うのが最も簡単で一般的です。
配列から要素を1つずつ取り出し、変数(以下の例では `$price`)に代入してブロック内の処理を実行します。

JavaScriptの`for...of`文に似ていますが、括弧内の書き方が少し異なります。

```php
$prices = [1290, 859, 1247];
$total = 0;

foreach ($prices as $price) {
  $total = $total + $price;
}

echo "合計: " . $total; // 合計: 3396
```

連想配列の場合、キーと値の両方を取り出すこともできます。

```php
$user = [
  "name" => "Bob",
  "age" => 25,
];

foreach ($user as $key => $value) {
  echo $key . ": " . $value . "<br>";
}
// name: Bob<br>age: 25<br> と表示される
```