$thisってなんだ?
結論から言うと『$thisとはクラス定義内部でプログラムがアクセス可能なオブジェクト名(インスタンスメソッド)』の事。
<?php
class SimpleClass
{
// プロパティの宣言
public $var = 'a default value';
// メソッドの宣言
public function displayVar() {
echo $this->var;
}
}
?>
というコードがあって、
$simpleclass = new SimpleClass();
echo $simpleclass->displayVar();
と呼び出しをすると、 “a default value” を出力する。
だから、関数内からClass内のプロパティにアクセスする疑似変数と認識した。
$this が SimpleClass のことを指していて、SimpleClass の var はプロパティの$varのことだな。うん。納得。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU2JTkzJUFDJUU0JUJDJUJDJUU1JUE0JTg5JUU2JTk1JUIwJTI0dGhpcyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YzlkZjQ0ZDdlYTc4YmFjMzhjNDI4ODJlM2E1NTdiMjY&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdGFkYXMxTiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZDg1ZDQ4OWJmNjQxNDdkNWRhZDk1MDg1MjVmMTIxZmI&blend-x=142&blend-y=491&blend-mode=normal&s=9a7a3f69924339323265d0c756c1245b)
擬似変数$this - Qiita
フロントエンドとして何となくPHPを使ってきて慣れ始めた頃、バックエンドで殆どPHPに触らない同期に「$thisって何?」と訊かれ上手く答えられなかった。気になるのでちょっと調べてみた。結論か…