なぜ変数をそのまま用いることができないのでしょうか?

$text や $likes はプロパティであり、呼び出すときは $this->text、$this->likes のように表す必要があります。
2024年1月13日
ユーザー

素朴な疑問なのですが、

class Post
{
  public $text;
  public $likes;

  public function __construct($textFromNew, $likesFromNew){
    $this->text = $textFromNew;
    $this->likes = $likesFromNew;
  }

  public function show()
  {
    printf('%s (%d)' . PHP_EOL, $this->text, $this->likes);
  }
}

において、

 public function show()
  {
    printf('%s (%d)' . PHP_EOL, $this->text, $this->likes);
  }

上記の部分はなぜ

 public function show()
  {
    printf('%s (%d)' . PHP_EOL, $text, $likes);
  }

のように書けないのでしょうか。
下のコードで実行したらエラーが出ました。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(6)