LoginSignup
7
15

More than 5 years have passed since last update.

【PHP】アロー演算子(->)、クラス、オブジェクト、インスタンスって要するになんなのさ

Posted at

 -> この記号ってなんだ?

オブジェクト指向とかでよく見る -> これとかを嚙み砕いて言葉で自分なりに説明したいと思います。

class.php
<?php
//クラス生成、$nameの参照範囲を全体から可能にする(public宣言)
class _Manname{
    public $name = '桜木';
}
//オブジェクトの生成
$a = new _Manname;
//インスタンスの生成
$man_name = $a->name;
//$man_nameの中身を出力
echo $man_name;
出力
桜木

アロー演算子ってどーやって使うの?

まずアロー演算子(->)を初学者視点からの説明を書いてみたいと思います。
上記のコードを実行すると 桜木 と出力されると思います。実際にコピペして頂いても動きますので試してみて下さい。インスタンスの生成でアロー演算子(->)を使用していますが、これは$aのオブジェクトからpublic宣言している$name変数を参照している状態で参照した変数を$man_nameに代入しているという流れになると認識しています。代入ではなくて参照、ここがポイントなんでしょうか。

もう少し処理を増やして説明した方がいいのかもしれませんが現在こんな感じで認識してます。

クラスってなんなのさ

上のソースコードでクラス宣言をしてclass _Mannameとしていますよね?よく設計図として例えられるクラス。あくまで初学者の認識での説明なので間違っていたらごめんなさいというか誰かご指導お願いします。このクラスの中に色々な材料(色んな引数)を渡してやるとクラス内部でゴニョゴニョして色んな返り値を渡してくれるスゲー便利な奴って感じだと思います。処理を複数書いて返り値を複数受け取ることで可読性の高いソースコードが書けるようになるって認識です。

オブジェクト?何それ食べれるの?

オブジェクトはインスタンスと似て非なるもの。オブジェクトは返り値や色々な変数が入る箱のイメージ。Object=物として直訳されますね。newで宣言して$aの中に_Mannameクラスの箱を作ってる感じだと思います。オブジェクトを参照してそのオブジェクトの中身を引っ張り出したりして代入したり、ゴニョゴニョしたりした値を変数に代入したりする大きい箱の中に小さい引き出しがいっぱい作れたり入ってるしてる物というイメージです。

インスタンスってオブジェクトと違うの?

インスタンスはオブジェクトの中身を細分化した物で実際に変数が代入されている物という感じでしょうか?参照は実際の値が入っているのではなく、間接的に同じ値が入っているように見えるのが参照。インスタンスは実際に代入されて値そのものが入っている状態の変数って感じじゃないでしょうか?

初学者の言い分なので鵜呑みにしてはいけません!
これから先、色々と悩むことが多いプログラミングではありますが少しずつ認識を広げて先駆者の方のお力添えも求めつつ、張り切ってコードを書いていきたいと思ってます!

7
15
3

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
7
15