0
0

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】$this->を含むコードの解説

0
Posted at

$this->の構成物

$this

今このクラスから生まれたオブジェクト自身
を指す特別な変数のこと。

->

オブジェクトの中身にアクセスするための記号

オブジェクト -> プロパティ もしくは メソッド
$this->name = 〇〇;

$this-> の使用例

class Games {
 public $title;  //プロパティ(オブジェクトが持つ「属性」)

 public function setTitle($title){
     $this->title = $title;   // オブジェクト自身の $name に代入
 }
}

コード自体をゲームソフトの箱に例えてみます。

class Games {}  //Gamesというクラス 「ゲームソフトの設計図」
この時点ではまだ実物が存在しない
public $title; //「title」という タイトルを書くための空欄を作る
               // アクセス権は「public」なので  クラスの{}の外側
               からでも呼び出せる
┌─────────────────┐
 タイトル:___      $title空欄
└─────────────────┘

public   クラスの{}外側からでも呼び出せる使える
外側というが別ファイルから参照などはできない
参照するにはrequire includeで読み込む

クラスの外 子クラス クラスの中
public
protected
private
public function setTitle($title){ 
} //タイトルを記入するペンを用意します 
  //$title は何を書くかを受け取る一時的なメモのようなもの
$this->title = $title;
//一時メモ($title)の内容を箱の欄($this->title)に書き写す

一時メモ         セーブデータ
$title           $this->title
"ドラクエ"  →→→  タイトルドラクエ

$this->と普通の関数との比較

$name = "めたっぴ" ── 戦闘中の一時的な計算

function attack() {
    $damage = 50;  // ダメージ計算
    echo "50ダメージ!";
}
// 戦闘が終わったら $damage は消えてしまう。

⚔️ 戦闘中に「会心の一撃でダメージ50!」と表示されるけど、
戦闘が終わったら何も残らないイメージ
セーブデータには書き込まれない


$this->name ── セーブデータへの書き込み

class Hero {
    public $name;
    public $level;
    public $hp;

    public function setUp($name) {
        $this->name  = $name;  // セーブデータに名前を登録
        $this->level = 1;      // レベルも保存
        $this->hp    = 100;    // HPも保存
    }

    public function levelUp() {
        $this->level += 1;   // 別の場面でもセーブデータを更新できる
        $this->hp    += 50;
    }

    public function showStatus() {
        // どのメソッドからでもセーブデータを読めますわ✨
        echo $this->name . " Lv." . $this->level . " HP:" . $this->hp;
    }
}

$hero = new Hero();
$hero->setUp("めたっぴ");
$hero->levelUp();
$hero->showStatus();  // → めたっぴ Lv.2 HP:150

💾 setUp() で書いたデータを showStatus() でも読める。
セーブデータはどの場面からでも参照できる

比較まとめ

$damage = 50 $this->hp = 100
ゲームで言うと 戦闘中のダメージ計算 セーブデータへの書き込み
どこに保存? 戦闘(関数)の中だけ セーブデータ(オブジェクト)の中
他のメソッドから見える? ❌ 戦闘終わったら消える ✅ どの場面でも読み込める
いつ消える? 戦闘終了(関数終了)時 データ削除(オブジェクト破棄)時

$this->「このキャラクターのセーブデータに書き込む」
$変数「戦闘が終わったら消えるダメージ計算」

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?