2011年05月24日

クラスの例の検証


前回、クラスの例としてコードを書いてみましたが、
もう少し詳しく見てみようと思います。

昨日やったのはこれですね↓

<HTML>
<HEAD>
<TITLE>クラスの例</TITLE>
</HEAD>
<BODY>

<?php

//ユーザを追跡するためのクラスを宣言する
class user
{
//プロパティ
var $name;
var $password;
var $last_login;

//メソッド

//全てのプロパティの定義
function init($inputName, $inputPassword)
{
$this->name = $inputName;
$this->password = $inputPassword;
$this->last_login = time();
}

//最後にログインした日を得る
function getLastLogin()
{
return(Date("M d Y", $this->last_login));
}
}

//インスタンスを生成して初期化
$currentUser = new user;
$currentUser->init("れい", "1234");

//最後にログインした日を得る
print($currentUser->getLastLogin());
print("<BR>\n");

//ユーザ名を表示
print($currentUser->name);
print("<BR>\n");

?>
</BODY>
</HTML>

順序としては、クラスの定義ができたら
まずは new文を使ったインスタンスの生成です。
この部分ですね↓

$currentUser = new user;

クラス名は「user」ですから、それを取って
新しいインスタンスを返すわけです。

次に、昨日何だろ?と思った -> ですが、
これはプロパティやメソッドを参照するための演算子でした!

プロパティ名の前に $ 記号がくっつかないのもポイント。

ユーザ名を出力する
print($currentUser->name);
print("<BR>\n");

の部分で、プロパティ「name」の前にドルマークはないですよね?

メソッドの方も見てみてください。
参照に -> 演算子が使われてますよね?

$currentUser->init("れい", "1234");
と、
print($currentUser->getLastLogin());

の部分で確認できます。

ちなみにメソッド名は、関数名として使えるものなら何でもOKです。
でもクラス名と同じだった場合、
その関数はコンストラクタとして扱われるそうなんですが…
コンストラクタって何だろう?(^^;)


<ご紹介>----------------------------------------------------------------------------------------

gamification.jpg

ゲーミフィケーション辞典48 19,800円

----------------------------------------------------------------------------------------<ご紹介>



クラスについてはこちらの記事もあります↓
PHP: クラスの宣言
PHP: クラスの要点



posted by れい at 14:44| Comment(0) | 基礎編 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。