[PHP]クラス定義を覚えよう

メールフォームを作るうえで、ページ遷移する際にパラメータを引き継ぎたいなぁ。クラス化して、そのオブジェクトを引き継いで、次のページでは参照だけ出来ると良いんだけど。

なんて思い付いたので、クラス定義を先に覚えておこうと思います。

ページ遷移時に引き継げるのかとか、そういうのは後で考えるとして、まずは基本から。

クラス定義

「あぁ、AS2.0みたいで懐かしい。」

そんな風に記述方法を見て思いました。

まずは書き方。

<?php
class ClassName
{
 private $_name;

 public function __construct($name)
 {
  $this->_name = $name;
 }

 public function echo_name()
 {
  echo $this->_name . "です。";
 }

 public function set_name($name)
 {
  $this->_name = $name;
 }
}
?>

こんな感じに定義します。

以下が気になりました。

  • コンストラクタ関数が「public function ClassName()」じゃない
    PHPでは__construct関数を利用するようです。
  • privateのプロパティを参照する時は$this->プロパティ名で参照できる
    global宣言なのかなぁ、と勝手に思っていましたが、そうではないみたいですね。
  • setter/getterは単純に関数を利用する
    「public function set name()」で「オブジェクト名->プロパティ名 = “値”」で大丈夫だよね? と思っていましたが、単純に関数を用意する必要があるみたいです。これはちょっと面倒。
  • プロパティはメンバー属性を付けるだけ
    メンバー属性の後にvarは付けなくて良いみたいです。(関数は「メンバー属性 function 関数名()」になるので、AS2と同じですね)

使い方

クラスの使い方は見慣れた感じでした。

<?php
include("class.php");
$class = new ClassName("ClassA");
$class->echo_name();

$class->set_name("ClassAA");
$class->echo_name();
?>

要点は以下でしょうか。

  • まずincludeする(別ファイルにするなら……というか、する)
  • オブジェクトの関数・プロパティの参照は「->」を使う(今更ですが)

これだけ覚えればバッチリ!

ClassAです。ClassAAです。

ちゃんと値が変更されていました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>