142日目 PHP特有の記号まとめ 社畜♀

最近初めてPHPに触れる機会があり、見たことはあるけどどういう意味なんだろうと感じていたPHP特有の記号をまとめておきたいと思います。

PHP特有の記号を理解できたらPHPへの理解度も上がり、コードも読みやすくなると思います。

## 第２話《PHP初心者が学ぶPHP特有の記号》

### **`$`（変数）**

・**用途**：PHPでは、すべての変数が`$`記号で始まります。変数はデータを格納するために使用されます。

```php:例:
$name = "John"; // 文字列型の変数
$age = 30;      // 整数型の変数
```
<br>

### **`::` （スコープ解決演算子）**

・**用途**：クラスの静的メソッドやプロパティ、定数にアクセスするために使用します。また、親クラスの静的メンバーにアクセスする際にも使われます。

```php:例1:静的メソッドにアクセス
class Math {
    public static function add($a, $b) {
        return $a + $b;
    }
}

echo Math::add(2, 3); // 出力: 5
```

```php:例2:定数にアクセス
class Config {
    const DB_NAME = 'my_database';
}

echo Config::DB_NAME; // 出力: my_database
```
<br>

### **`->`（オブジェクト演算子）**

・**用途**：オブジェクトのプロパティやメソッドにアクセスするために使用します。
```php:例1:プロパティにアクセス
class Person {
    public $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
}

$person = new Person("Alice");
echo $person->name; // 出力: Alice
```
<br>

```php:例2:メソッドを呼び出す
class Greeter {
    public function greet($name) {
        return "Hello, $name!";
    }
}

$greeter = new Greeter();
echo $greeter->greet("Bob"); // 出力: Hello, Bob!
```
<br>

### **`=>` （配列キー・値のペア）**

・**用途**”：連想配列を作成する際に使用します。配列のキーとそのキーに対応する値を結びつけます。

```php:例:
$user = [
    'name' => 'John',
    'email' => 'john@example.com',
    'age' => 30
];

echo $user['name']; // 出力: John
```
<br>

### **`__`（マジックメソッドプレフィックス）**

・**用途**：PHPの「マジックメソッド」や「マジックプロパティ」には、通常２つのアンダースコア（`__`）がプレフィックスとして使われます。これらのメソッドは特定のクラスの動作をカスタマイズするために使います。

```php:例:
class Example {
    public function __construct() {
        echo "Constructor called!";
    }
    
    public function __destruct() {
        echo "Destructor called!";
    }
    
    public function __toString() {
        return "Example object";
    }
}

$obj = new Example(); // 出力: Constructor called!
echo $obj;           // 出力: Example object
```
<br>

### **`$GLOBALS` （グローバル変数）**

・**用途**：グローバルスコープで定義された変数にアクセスするために使用します。関数内からグローバル変数にアクセスする際に利用します。

```php:例:
$globalVar = 'I am global!';

function showGlobal() {
    global $globalVar;
    echo $globalVar;
}

showGlobal(); // 出力: I am global!
```
<br>

### **スーパーグローバル配列**

### **`$_POST`**
・**用途**：HTMLフォームからPOSTメソッドで送信されたデータを取得するために使用します。

```php:例:
// フォームデータをPOSTで送信する場合
echo $_POST['username'];
```
<br>

### **`$_GET`**
・**用途**：HTMLフォームからGETメソッドで送信されたデータや、URLパラメータからデータを取得するために使用します。

```php:例:
// URLパラメータを取得する場合
echo $_GET['id'];
```
<br>

### **`$_SESSION`**
・**用途**：ユーザーのセッションデータを保存するために使用します。セッションはユーザーのブラウザが閉じられるまでデータを保持します。

```php:例:
session_start();
$_SESSION['username'] = 'JohnDoe';
echo $_SESSION['username'];
```
<br>

### **`$_COOKIE`**
・**用途**：ユーザーのブラウザに保存されたデータを取得するために使用します。

```php:例:
// クッキーを設定する場合
setcookie('user', 'JohnDoe', time() + 3600);

// クッキーを取得する場合
echo $_COOKIE['user'];
```
<br>

<br>

### **`...` （スプレッド演算子、可変長引数）**

・**用途**：配列や引数を展開するために使用します。主に関数呼び出しや配列の結合に利用されます。

```php:例1:関数に可変長引数を渡す
function sum(...$numbers) {
    return array_sum($numbers);
}

echo sum(1, 2, 3, 4); // 出力: 10
```

```php:例2:配列の展開
$array1 = [1, 2, 3];
$array2 = [4, 5, ...$array1];

print_r($array2); // 出力: Array ( [0] => 4 [1] => 5 [2] => 1 [3] => 2 [4] => 3 )
```
<br>

<br>

## まとめ
・`$`は変数を示すために使用する。
・`::`はクラスの静的メンバーや変数、親クラスのメンバーにアクセスするために使用する。
・`->`はオブジェクトのプロパティやメソッドにアクセスするために使用する。
・`=>`は連想配列のキーと値を関連付けるために使用する。
・`__`はマジックメソッドやプロパティのプレフィックスとして使用され、特定の機能をカスタマイズするために使う。
・`$GLOBALS`はグローバルスコープの変数にアクセスするために使用する。
・スーパーグローバル配列（`$_POST`, `$_GET`, `$_SESSION`, `$_COOKIE`）はリクエストデータやセッションデータ、クッキーのデータを取得するために使用します。
・`...`（スプレッド演算子）は、配列の展開や関数の可変長引数に使用します。

<br>

超絶初心者ですので間違いがあれば是非お教えください！

**TO BE CONTINUED...**