PHPチュートリアル

PHPホーム PHPイントロ PHPインストール PHP構文 PHPコメント PHP変数 PHPエコー/印刷 PHPデータ型 PHP文字列 PHP番号 PHP数学 PHP定数 PHP演算子 PHP If ... Else ... Elseif PHPスイッチ PHPループ PHP関数 PHP配列 PHPスーパーグローバル PHP正規表現

PHPフォーム

PHPフォーム処理 PHPフォームの検証 PHPフォームが必要 PHPフォームのURL / Eメール PHPフォームの完了

PHP Advanced

PHPの日付と時刻 PHPインクルード PHPファイルの処理 PHPファイルのオープン/読み取り PHPファイルの作成/書き込み PHPファイルのアップロード PHPクッキー PHPセッション PHPフィルター PHPフィルターアドバンスト PHPコールバック関数 PHP JSON PHPの例外

PHPOOP _

PHPOOPとは PHPクラス/オブジェクト PHPコンストラクター PHPデストラクタ PHPアクセス修飾子 PHPの継承 PHP定数 PHP抽象クラス PHPインターフェース PHPの特性 PHP静的メソッド PHPの静的プロパティ PHP名前空間 PHPIterables

MySQLデータベース

MySQLデータベース MySQLコネクト MySQL Create DB MySQLテーブルの作成 MySQLの挿入データ MySQLは最後のIDを取得します MySQL Insert Multiple MySQLを準備しました MySQL Select Data MySQL Where MySQL Order By MySQLデータの削除 MySQLアップデートデータ MySQL制限データ

PHP XML

PHPXMLパーサー PHPSimpleXMLパーサー PHPSimpleXML-取得 PHP XMLExpat PHP XML DOM

PHP -AJAX

AJAXイントロ AJAX PHP AJAXデータベース AJAX XML AJAXライブ検索 AJAXポール

PHPの

PHPの例 PHPコンパイラ PHPクイズ PHP演習 PHP証明書

PHPリファレンス

PHPの概要 PHP配列 PHPカレンダー PHPの日付 PHPディレクトリ PHPエラー PHP例外 PHPファイルシステム PHPフィルター PHP FTP PHP JSON PHPキーワード PHP Libxml PHPメール PHP数学 PHPその他 PHP MySQLi PHPネットワーク PHP出力制御 PHP正規表現 PHP SimpleXML PHPストリーム PHP文字列 PHP変数の処理 PHPXMLパーサー PHP Zip PHPタイムゾーン

PHPOOP-クラスとオブジェクト


クラスはオブジェクトのテンプレートであり、オブジェクトはクラスのインスタンスです。


OOPケース

Fruitという名前のクラスがあるとしましょう。Fruitには、name、color、weightなどのプロパティを含めることができます。$ name、$ color、$ weightなどの変数を定義して、これらのプロパティの値を保持できます。

個々のオブジェクト(リンゴ、バナナなど)が作成されると、それらはクラスからすべてのプロパティと動作を継承しますが、各オブジェクトのプロパティの値は異なります。


クラスを定義する

class クラスは、キーワード、クラスの名前、および中括弧({})のペアを使用して定義されます。そのすべてのプロパティとメソッドは中括弧の中にあります。

構文

<?php
class Fruit {
  // code goes here...
}
?>

以下では、2つのプロパティ($ nameと$ color)と、$ nameプロパティを設定および取得するための2つのメソッドset_name()とget_name()で構成されるFruitという名前のクラスを宣言します。

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

注:クラスでは、変数はプロパティと呼ばれ、関数はメソッドと呼ばれます。


オブジェクトを定義する

クラスはオブジェクトなしでは何もありません!クラスから複数のオブジェクトを作成できます。各オブジェクトには、クラスで定義されているすべてのプロパティとメソッドがありますが、プロパティ値は異なります。

クラスのオブジェクトは、newキーワードを使用して作成されます。

以下の例では、$ appleと$ bananaはFruitクラスのインスタンスです。

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

以下の例では、$ colorプロパティを設定および取得するために、Fruitクラスにさらに2つのメソッドを追加します。

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>


PHP- $ thisキーワード

$ thisキーワードは現在のオブジェクトを参照し、メソッド内でのみ使用できます。

次の例を見てください。

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
?>

では、$ nameプロパティの値はどこで変更できますか?2つの方法があります:

1.クラス内(set_name()メソッドを追加して$ thisを使用):

<?php
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?>

2.クラスの外部(プロパティ値を直接変更することによる):

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?>

PHP-instanceof

キーワードを使用してinstanceof、オブジェクトが特定のクラスに属しているかどうかを確認できます。

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>