インスタンス化とかもろもろ


インスタンス化とか、インスタンス化なしで使用とか
あまりわかってなかったので、まとめてみました。


適当に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ごとインスタンス化されるけど、
 :: で呼び出されるものは、その部分しか呼び出されないということだと思います










/