とりあえず掲示板作成をする過程で躓いたところなんかを。基本的すぎることはすっ飛ばします。今回は、クラスについて。
クラスとは、変数およびこれらの変数で動作する関数の集まり
ということだそうで、まぁ、よく使われる処理なんかをまとめておいて、好きな時に呼びだして楽しようとかそんなもんでしょうか。オブジェクト指向ってなんだろう。
perl でもあるようなものかな。他の言語にもあるか。とりあえず、ユーザ定義関数の使い方から。
function test(){
echo "てすてす";
}
こんなん再利用してどうするんだとか思ったけど例なので勘弁。 function test() がユーザ定義関数というやつ。 test のところはもち好きな名前に変えられる。括弧の中は引数で、ない場合は空にする。
これを呼び出すには、 test() という一文をどこかに入れればいい。
<html><body>
<?php
function test(){
echo "てすてす";
}
test();
?>
</body></html>
さて次はクラス。クラスは、先のユーザ定義関数とか変数の集まり、……というのでいいのかなぁ?覚えたてなので自信ないけどまぁいいや。いいのかヲイ。
class test{
var $kazu;
function x($x){
$this->kazu = $x;
}
function y($y){
$x = $this->kazu;
echo $x*$y;
}
}
$testx = new test;
$testx->x(10);
$testx->y(5);
test というのがクラス名。その中にあるのが、ユーザ関数。ここでは二つ使っています。 var というのは、クラス全体で使用する変数を宣言するためのもの。ここの例ではこれを使わなくても普通に動いたんですが、たぶん、あったほうがいいと思うので、入れておきます(適当…)。
$this というのは、クラスの持っている変数 (この場合は kazu)にアクセスするためのもの。その後の処理については後述。
クラスの呼び出しは、まず、 $testx = new test とします。左辺の変数名も好きなものでいけます。 new は演算子で、これを使用して、 $testx 変数にインスタンスとやらが格納される。この後に、クラスの中の関数を呼び出すには、 $testx->x(); のようにする。
例で関数を呼び出す時の括弧の中に入っている数字は、そのまま関数まで持っていかれます。
最初の関数では、$this->kazu = $x の部分で、持ってきた数字を kazu に代入しています。
そして、次の関数では $x = $this->kazu で $x をもらって、こちらで持っている $y に掛けて、出力します。
……ああ、わかりにくいなぁ。とりあえずサンプルを見て体で理解してみてください。自分も半分はそんなんなので、頭では半分くらいしか理解しておらず説明もこんな適当なのであります。うぅ。後で見てもわからないかもしれない覚え書きなんて……(苦笑)。
なにげに間違ったとこがあっても指摘してもらえたらウマーかもしれないというのもありこんなもんを書いてみたりもしたので、なんかおかしなところがあったら教えてくださいまし。ああ、書ききれないとか言われたら鬱だけど…。
参考にしたサイトも挙げておきます。
PHP マニュアルは検索もできてとても便利なので活用しませう。