インスタンス化とかもろもろ
インスタンス化とか、インスタンス化なしで使用とか
あまりわかってなかったので、まとめてみました。
・適当にPHPのファイル作ります<?php
class Sample {
var $text='something';function say() {
echo $this->text.' hello';
}function testStatic() {
static $hoge;if (!isset($hoge)) {
$hoge=0;
}
echo $hoge++;
}
}//インスタンス化
$sample = new Sample();//$testに"test"を代入
$sample->text = 'test';//test hello出力
$sample->say();//0を出力
$sample->testStatic();//1を出力
$sample->testStatic();//2を出力
$sample->testStatic();//インスタンス化($sampleとは別物になる)
$sample1 = new Sample();//なので、something hello出力
$sample1->say();//3を出力
※staticで宣言された変数はグローバルなり、どこから呼び出されても同じものが呼び出される
$sample1->testStatic();//4を出力
$sample1->testStatic();
// static methodと言う。インスタンス化せずに使用できる
5を出力
Sample::testStatic();//staticメソッドは静的なものしかだめなので $this->と記述されているものはエラーになる
Sample::say();
・インスタンス化したものはclassごとインスタンス化されるけど、
:: で呼び出されるものは、その部分しか呼び出されないということだと思います
/