原來,$this就是指一個特定桌子呀,哈哈,明白了,原來類是大家都有的屬性,方法的集合,而一個特定的對象,就是這個群體中的一個個體,既然是他們當中的個體,當然擁有群體所擁有的共同特征和方法拉。
成員變量,成員方法[成員函數],實例化,大家都知道了。
但是我桌子雖然想變大,可是我還不知道桌子開始有多大啊,這可能嗎,怎麼辦呢?
接下來,我們隆重推出 構造函數 來拉。要說到構造函數啊,話多啊,就不多說了,他就是給我們桌子面和桌子腿確定大小的。
////////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
////////////
看到了吧,我把桌子定義了大小和長度哦
//////////
聰明的你,一定想立即實例化了吧,如果我開始在定義成員變量裡就給值了,那不是說所有桌子都一樣大嗎?
//////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
$d = new desktop;
$d->desktop();
////////////////////
可是結果卻是:Call to a member function desktop() on a non-object in
倒霉,肯定是作者在騙點擊,bs這小樣,TT.
其實是我錯了,我知道錯了。原來 我們剛才添加的函數
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
是個構造函數,什麼是構造函數呢,哎呀,原來構造函數是類特有的函數,在類被實例化後,類會第一步自動執行構造函數,它在為類開辟內存單元嘛。
為了驗證是不是它一開始就執行,大家請把目光放到本教程第一個代碼上去,嘎嘎,您看到了把,一個和類名一樣的方法,一個構造函數,在我們實例化後就已經輸出代碼了吧,這就證明我還沒有說錯呢。
好了,回到我們的桌子世界裡,你發現了,我們這個時候所有桌子面和腿都是100了。
2.PHP
執行代碼
//////////////
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統一在".$this->desktop."大小!<br />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,逃離了桌子家族,因為,我們的面子沒小桌子這nb大了。桌子老長老看不下去了,小樣,看我的。
//////////////
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop($desktop){
$this->desktop = $desktop;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統一在".$this->desktop."大小!<br />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,左轉轉,右轉轉 看了半天,逛累了,覺得自己現在也進化了,該看看新同類了 於是;桌子變身執行後,發現......
/////
$d = new desktop(101);
////
我tmd還是一張小桌子。