Help us understand the problem. What is going on with this article?

【備忘録】Progate PHP 道場コースⅡ まとめ

More than 1 year has passed since last update.

今回はPrpgateの学習コースPHPⅡで出た基礎知識をまとめていきます。

クラスとインスタンス

クラスとは要素を入れる箱で、次のように記述します。

<?php 
  class Menu{
  ----
  }
//classの名前は大文字で始める
?>

インスタンスとはクラスの中にある要素のことで、以下のように記述します。

<?php
  $curry = new Menu();
  $pasta = new Menu();
?>

プロパティ

プロパティとはクラス内に定義するインスタンスのデータのことで、以下のように記述します。

<?php 
  class Menu{
  public $name;
  }
///プロパティを定義するには主にpublic,private,protectedと3つの修飾詞があります。
?>

またこれらのこれらのプロパティにアクセスし表示するためには以下のような記述をします。

<?php
  $curry -> name = 'CURRY';
    $pasta -> name = 'PASTA';
    echo $curry -> name;
  echo '<br>';
  echo $pasta -> name;
?>

結果:
CURRY
PASTA

メソッド

メソッドとはオブジェクトに対して指定する動作のことで、以下のように記述します。

<?php
class Menu {
  public $name;
  public function hello(){
    echo '私はMenuクラスのインスタンスです';
  }
  ///ここでメソッドを定義します
}

$curry = new Menu();
$pasta = new Menu();
$curry->name = 'CURRY';
$pasta->name = 'PASTA';

$curry -> hello();
echo '<br>';
$pasta -> hello();
///クラス内にあるインスタンスからメソッドを呼び出します

?>

結果:
私はMenuクラスのインスタンスです
私はMenuクラスのインスタンスです

$this

メソッドの中で$thisという変数を使うことでそのメソッドを呼び出しているインスタンスと置き換えることができます。

<?php
class Menu {
  public $name;
  public function hello() {
  echo '私は'.$this->name.'です';
  }
}

$curry = new Menu();
$pasta = new Menu();
$curry->name = 'CURRY';
$pasta->name = 'PASTA';
$curry->hello();
echo '<br>';
$pasta->hello();

?>

結果:
私はCURRYです
私はPASTAです
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away