PHP

【PHP】アロー演算子がわからない!!そんな悩みを解決します

スポンサーリンク

【PHP】アロー演算子がわからない!!そんな悩みを解決します

 

PHPのアロー演算子『->』っていろんな場面で出てくるけど、どういう意味合いで使われているのかがいまいちわからない。

 

こんにちは、誠太です。

 

アロー演算子っていう名称の説明だったり、プロパティにアクセスするためのものだという説明はあるものの、どういった使い方などが曖昧な説明になっているサイトなどが多く分かりづらいですよね。

 

サイトに限らず、動画での解説だったりしてもなかなかわかりやすい解説をしてくれているものは少ないです。

 

今回、PHPの学習をしている中でアロー演算子の意味合いについて理解できたので、学習者ながら解説をしてみたいと思います。

 

現状データベースとアクセスして、会員情報を登録しログインページにて認証を行う程度の技量は持ち合わせているので、ぜひ参考にしていただければと思います。

 

【PHP】アロー演算子がわからない!!そんな悩みを解決します

【PHP】アロー演算子がわからない!!そんな悩みを解決します

 

アロー演算子は冒頭でも出てきましたが、このような記号です『->』。

 

正直これだけ見てもなんのことかさっぱりだと思うので、できるだけわかりやすく解説していきたいと思います。

 

PHPのアロー演算子ってなに?

PHPのアロー演算子はリファレンス(説明書)のような解説ではなく、ざっくりの解説で紹介します。

 

そのほうが、理屈っぽくなく頭の中で理解しやすいと思うからです。

 

アロー演算子は、$thisなどと相まって使用されることが多いので混乱しがちですが、$thisの中身に設定されているプロパティにアクセスすると考えるとわかりやすいです。

 

PHPのアロー演算子のイメージ

こちらのコードを見てみてください。

 

 PHP
<?php
class Test
{
public $name = "taro";
public $age = "20";
function sample()
{
echo $this->name;
echo $this->age;
}
}
$human = new Test();
echo $human->name;
echo $human->age;
?>
//結果:taro20

 

わかりやすいので、クラスを使用しての解説します。

 

『echo $this->name;』と『echo $this->age;』は最初に定義した『public $name = "taro";』『public $age = "20";』の部分の値にアクセスしています。

 

$thisはTestというクラスの中に定義されている、メンバ変数と言われる変数の値にアクセスしているという流れです。

 

最終的に$humanという変数にTestというクラスを追加して、中身の値が使えるようになっているので、『echo $human->name;』『echo $human->age;』はクラス内の『echo $this->name;』『echo $this->age;』で取れる値と同じ意味合いになります。

 

このように、クラス内の$this->で使われるアロー演算子はメンバ変数『public $name = "taro";』『public $age = "20";』。

 

最後の出力部分の『echo $human->name;』『echo $human->age;』はクラスTestの中のメンバ変数$nameと$ageを指しています。

 

PHPのアロー演算子の使い所

PHPのアロー演算子の使い所

 

PHPのアロー演算子は先程のクラスの他にも色々な部分で使用されます。

 

クラスの中の$this

先程、クラスを作って変数にクラスの中身を与えるという動作をしましたが、クラスを作成する際にほぼほぼ使用するでしょう。

 

結果的にクラスを使用するには、アロー演算子の意味を理解しなければいけないので、アロー演算子がどの部分を指しているのかを意識することで理解しやすくなるはずです。

 

関数へのアクセスのため

関数がよくわからないという場合は、【PHP】関数と引数がわからない!!でもこれで完璧【初心者向け】にて解説されているので、ぜひ参考にしてください。

 

クラスを立てなくても、関数を建てる中でアロー演算子が出てくる場合があります。

 

他のサイトや動画などでサンプルプログラムなどを見ていると出てくることが多いと思うので、その際もアロー演算子がどの値を指しているのかを意識しながらコードを見ることで、理解が深まっていくでしょう。

 

標準搭載の関数プロパティへのアクセス

クラスや自分で作った関数以外で、PHPに標準搭載されている関数のプロパティにアクセスする際にも使用されます。

 

そのため、○○()->○○;という記述が出てきて、後ろの〇〇が確実に自分が書いているコードの中にないプロパティだという事もしばしば。

 

そういうときは、前の関数がPHPの標準搭載関数の場合があるので、どこから出てきたのか混乱せずに関数の出どころは何処なのかを調べてあげると、必然的にアクセスしているプロパティが理解できるようになります。

 

アロー演算子が指しているところを把握すれば理解が深まる

アロー演算子が指しているところを把握すれば理解が深まる

 

アロー演算子は理解するのに、結構苦しみました。

正面から書いているコードを受け止めようとすると、出所がわからないプロパティに混乱することも多いでしょう。

 

クラスなどはオブジェクト指向の代表格、基本となってくるかと思いますが、クラスを理解できるようになるとアロー演算子も必然的に理解できるようになるので、本記事を参考に途中で諦めることなく思考を回転させてみてください。

 

オススメ記事【Udemyが強い!】Web制作を独学で学べる講座はひとつあれば事足りそう

オススメ記事プログラミングの本は学習に必要だけど、本だけではキツいというお話【体験談】

  • この記事を書いた人
  • 最新記事
誠太

誠太

理系の文系ブロガー。理系脳ではプログラミングを、文系脳ではブログの運営についてのHow toを話題にブログで紹介しています。年間で1,600万を売り上げた実績を元にマーケティングにも触れ、プログラミングの学習方法やブログでの稼ぎ方について情報発信中!

よく読まれている記事

1

  AFFINGER5を購入しようか迷っているけど、損をしない特典が付いているところから購入したい。実用特典ってどんな特典なの?   ご覧いただいてありがとうございます。 &nbs ...

2

スポンサーリンク   アフィリエイトに向いているASPってあるのかな?もし稼ぎやすいASPがあるなら登録したいんだけど、おすすめのASPってある?   こんな悩みに解決しようと思い ...

3

  誠太こんにちは、誠太です!   ブログを運営していると、自分の文章をもっと良くしたいと思ってしまうものではないでしょうか。   しかし、ただブログを書いているだけでは ...

4

  ブログのSEO対策はいろんな情報があって、何が正しい対策なのかわからない場合が多く困ってしまいませんか?   本記事では、今回紹介するSEO対策を行い上位表示を確認できたことを ...

5

  誠太こんにちは、誠太です!   はてなブログをお使いのあなたにお伝えしなければいけないことがあります。 はてなブログから『はてなブログPro』に移行するのはやめましょう。 &n ...

-PHP
-

Copyright© SEITALITY , 2019 All Rights Reserved.