これを読むと
- $thisとself::の使い方が分かる
$thisについて
$thisは、自分自身の「オブジェクト」で使用できる
<?php
$object = new Sports();
$object->speakingSports();
class Sports {
public $sports = 'baseball' . " ";
public function sportsName()
{
return 'marathon';
}
function speakingSports() {
echo $this->sports;
echo $this->sportsName();
// echo self::sports;
// echo self::sportsName();
}
}
?>
出力結果
baseball marathon
// echo self::sports;
// echo self::sportsName();
のコメントアウトを削除した場合の出力結果
PHP Fatal error: Uncaught Error: Undefined constant Sports::sports in /workspace/Main.php:17
インスタンス化した際、クラス内のメンバ変数やメソッドを示すことができる。
self::について
自クラスの示すのに使用できる
<?php
$object = new sports();
$object->speakingSports();
class sports {
const SPORTS = 'soccer' . " ";
public static $sports = 'football';
function speakingSports() {
echo self::SPORTS;
echo self::$sports;
// echo $this->sports;
// echo $this->sportsName();
}
}
?>
出力結果
soccer football
// echo $this->sports;
// echo $this->sportsName();
のコメントアウトを削除した場合の出力結果
Accessing static property sports::$sports as non static in /workspace/Main.php on line 14
self::を使う際には、constやstaticが必要です。
参考記事
https://hara-chan.com/it/programming/php-self-this-difference/
以下、私の同士の記事(こっちの方が分かりやすい(笑))
【PHP】$this と selfの違いとは? | ゆゆゆ blog
はじめに 今回は、クラス内でメソッドを呼び出す際に使う$thisとself::の違いについて解説します。 例えば、以下のコード15行目で$thisを書かずに実行すると、 Fatal error: Uncaught Error: Call t
コメント