見出し画像

self::get_slide_html()の :: は?

:: は「スコープ解決演算子」と呼ばれます。PHPでは、静的メソッドや静的プロパティをクラス名やselfを使ってアクセスする際に使用します。



PHPでは、クラスという仕組みを使って、データや機能をまとめることができます。クラスの中には、**メソッド**(関数のようなもの)や**プロパティ**(変数のようなもの)があります。

静的(スタティック)メソッドやプロパティとは、クラス自体に属するもので、クラスのインスタンス(オブジェクト)を作らなくても使えるものです。これを使うためには、`::`という記号を使います。


### 具体例で説明します

#### 1. クラスの中にある静的メソッドを使う場合

まず、クラスを定義します。このクラスには、静的なメソッド`get_slide_html`があります。

```php

class SlideShow {
  // 静的メソッドを定義
  public static function get_slide_html() {
      return '<div>Slide Content</div>';
  }
}

```

このクラスの中で`self::get_slide_html()`と書くと、このクラスの静的メソッド`get_slide_html`を呼び出すことができます。

```php

class SlideShow {
  public static function get_slide_html() {
      return '<div>Slide Content</div>';
  }

  public function displaySlide() {
      echo self::get_slide_html();
  }
}

```

ここでの`self::get_slide_html()`は、`SlideShow`クラスの中で`get_slide_html`メソッドを使うという意味です。



#### 2. クラスの外から静的メソッドを使う場合

クラスの外で静的メソッドを使うときは、`クラス名::メソッド名`と書きます。

```php

// 静的メソッドの呼び出し
echo SlideShow::get_slide_html();

```

この例では、`SlideShow`クラスの静的メソッド`get_slide_html`を呼び出して、その結果を表示しています。




### まとめ

- `self::` は、同じクラス内の静的メソッドやプロパティを使うために使います。

- クラスの外から静的メソッドやプロパティを使うときは、`クラス名::メソッド名` もしくは `クラス名::プロパティ名` と書きます。

静的メソッドやプロパティを使うと、クラスをインスタンス化(newでオブジェクトを作ること)しなくてもクラスの機能を利用できるので、便利です。

この記事が気に入ったらサポートをしてみませんか?