4
3

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のアロー演算子(->)が意味わからん。

Last updated at Posted at 2024-01-31

今回は毎回わからなくて困っていたアロー演算子について説明していこうと思います。
過去の記録を遡ってみるとアロー演算子がわからなくて調べるのは3回目でした。
図にもしてみたのでわかりやすくなっているかと思います。

アロー演算子を一言で表すと

クラスの関数(メソッド)や変数(プロパティ)を使うためのツール
です。

これから具体的に説明していきます。

クラスとは

関数(メソッド)や変数(プロパティ)を持つオブジェクトの雛形です。
オブジェクト指向とは??ということについてはこちらの記事が参考になります。

クラスのコードの例は以下の通りです。

class クラス名{

    public $プロパティA = "プロパティA";
    public $プロパティB = "プロパティB";

    public function メソッド名(){
        //処理内容
    }
}

例えば"表紙の色"と"ページ数"を決めてノートを作る例を考えてみましょう。
その場合上記のコードは以下のように書くことができます。

//ノートの設計図クラスnotebook
class notebook{

    //ノートの表紙の色、初期値は青色
    public $color = "青色";
    //ノートのページ数、初期値は50
    public $pages = "50";

    //ノートを作成するメソッドcreate
    public function create(){
        echo "このノートの表紙は" . $this->color . "で" . $this->pages . "ページあります。";
    }
}

この時createでは$this->colorと記述することで、クラス内のプロパティであるcolorの内容を呼び出しています。

インスタンスを作る

先ほど作った設計図(クラス)を元に実体(インスタンス)を作っていきます。

オブジェクトとインスタンス

オブジェクト:さまざまな実体の総称
インスタンス:クラスを元に作成したオブジェクトの実体のこと

引用:インスタンスとオブジェクトの違い - ITを分かりやすく解説

インスタンスを作るには以下のように記述します。

$インスタンス名 = new クラス名();

//notebookクラスのインスタンスを作成
$mynotebook = new notebook();

関数を呼び出してみる

ではアロー演算子を使ってクラスnotebookの機能を使ってみます。

//関数createの呼び出し
$mynotebook -> create();

呼び出すと、「このノートの表紙は青色で50ページあります。」と出力されます。

image.png

変数を呼び出してみる

ではnotebookの変数を呼び出し、表紙の色やページを自分好みに変えてみます。

//表紙を黄色にする
$mynotebook -> color = "黄色";
//30ページにする
$mynotebook -> pages = "30";
//関数createの呼び出し
$mynotebook -> create();

以上の場合「このノートの表紙は黄色で30ページあります。」と出力されます。
image.png

まとめ

これまでのやったことを図にまとめると以下のようになります。
(文字が読みにくかったら申し訳ありません。)

スクリーンショット 2024-01-24 17.27.26.png

少しでも理解していただけると幸いです。
読んでいただきありがとうございました。

参考・引用

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?