php面向?qū)ο?類與對(duì)象

一渠啊、面向?qū)ο笏枷耄?br> php、java权旷、OC等都是支持面向?qū)ο缶幊痰奶骝取n愂浅橄蟮模瑢?duì)象是具體的拄氯,比如:你娶了個(gè)老婆叫l(wèi)izzy躲查,老婆是類,lizzy是對(duì)象译柏。因?yàn)槔掀攀且活惾肆椭螅鴏izzy是具體的某一個(gè)。

二鄙麦、成員屬性:
1典唇、成員屬性是從某個(gè)事物提取出來的,他可以是基本數(shù)據(jù)類型(整數(shù)胯府、小數(shù)介衔、字符....),也可以是復(fù)合數(shù)據(jù)類型(數(shù)組骂因、新的對(duì)象....)炎咖;

創(chuàng)建對(duì)象:
$對(duì)象名 = new 類名();
$對(duì)象名 = new 類名;
這兩種方法創(chuàng)建都可以。

定義成員屬性并賦值:
$對(duì)象名 -> 屬性名 = "具體屬性";

<?php

    //創(chuàng)建貓這個(gè)類
    Class Cat {
        public $name;
        public $age;
        public $color;
    }
    //創(chuàng)建貓對(duì)象
    $cat1 = new Cat();
    $cat2 = new Cat();

    //給貓屬性賦值
    $cat1 -> name = "小白";
    $cat1 -> age = 3;
    $cat1 -> color = "白色";

    $cat2 -> name = "小花";
    $cat2 -> age = 100;
    $cat2 -> color = "花色";
    
    $searchCatName = "小白";
    if ($cat1 -> name = $searchCatName) {
        echo $cat1->name."<br/>".$cat1->age."<br/>".$cat1->color;
    }
?>

二侣签、命名規(guī)范:
如果一個(gè)文件專門用于定義類塘装,則命名: 類名.class.php。

三影所、內(nèi)存原理圖:


內(nèi)存原理圖.png
棧地址區(qū)別.png

四蹦肴、如果給函數(shù)傳遞的是基本數(shù)據(jù)類型,在默認(rèn)情況下是傳遞的值猴娩,如果希望傳入地址阴幌,則應(yīng)該才傳入的參數(shù)那加入&。

<?php 

    //給一個(gè)函數(shù)傳遞基本數(shù)據(jù)類型
    $a = 90;
    $b = 90.6;
    $c = true;
    $d = "hello";

    function test(&$a,$b,$c,$d) {

        $a = 78;
        $b = 89.2;
        $c = false;
        $d = "changsha";
    }

    test($a,$b,$c,$d);
    echo $a."<br/>".$b."<br/>".$c."<br/>".$d."<br/>";
?>

在php中如果給一個(gè)函數(shù)傳遞的是數(shù)組卷中,則默認(rèn)情況下是傳值(拷貝了新的數(shù)組)矛双,如果希望傳入地址,則應(yīng)加入:&$數(shù)組名蟆豫。

五议忽、成員方法:
函數(shù)和成員方法關(guān)系:
當(dāng)我們把一個(gè)函數(shù)寫到某個(gè)類中,則該函數(shù)可以稱成員方法十减。

<?php 

    Class Person {
        public $name;
        public $age;

        public function speak() {
            echo "<br/>我是一個(gè)成員方法";
        }

        public function doCount($n) {

            $sum = 0;
            for ($i=0; $i < $n; $i++) { 
                $sum+=$i;
            }
            return $sum;
        }
    }

    $p1 = new Person();

    // $p1 -> speak();//通過對(duì)象調(diào)用成員方法,機(jī)制和調(diào)用普通函數(shù)一樣
    for ($i=0; $i < 5; $i++) { 
        $p1 -> speak();
    }

    $sum = $p1 -> doCount(100);
    echo "<br/>1到n的計(jì)算結(jié)果是:".$sum;
?>

六栈幸、構(gòu)造方法:
構(gòu)造方法是leukemia的一種特殊的方法愤估,主要作用是完成對(duì)新對(duì)象的初始化。有如下特點(diǎn):
1速址、沒有返回值玩焰;
2、在創(chuàng)建一個(gè)類的新對(duì)象時(shí)芍锚,系統(tǒng)會(huì)自動(dòng)的調(diào)用該類的構(gòu)造方法完成對(duì)新對(duì)象的初始化昔园。

php5中一個(gè)類可以同時(shí)又兩種形式的構(gòu)造方法,__construct() 和php4里的:方法名和類名相同并炮。如果兩者同時(shí)存在默刚,只有__construct() 有效。盡量避免使用后者渣触。

系統(tǒng)會(huì)給每個(gè)對(duì)象分配this羡棵,代表當(dāng)前對(duì)象的地址壹若;呢哪個(gè)對(duì)象使用到this嗅钻,就是哪個(gè)對(duì)象地址。this不能外部使用店展。

<?php  

    Class Person {
        public $name;
        public $age;

        public function __construct($inputName,$inputAge) {
            echo "我是構(gòu)造方法";

            $this -> name = $inputName;
            $this -> age = $inputAge;
        }

        //這是php4中的構(gòu)造方法养篓,方法名和類名相同
        public function Person() {
            echo "我是php4中的構(gòu)造方法";
        }
    }

    $p1 = new Person("zxm", 24);
    echo "<br/>調(diào)用構(gòu)造方法后結(jié)果:".$p1->name;
?>

構(gòu)造方法注意事項(xiàng):
1、一旦自定義了一個(gè)構(gòu)造函數(shù)赂蕴,默認(rèn)的構(gòu)造函數(shù)就被覆蓋了柳弄,這時(shí)在創(chuàng)建對(duì)象的時(shí)候就要使用自定義的構(gòu)造函數(shù)。
2概说、一個(gè)類只能有一個(gè)構(gòu)造函數(shù)(不能重載)碧注。

七、析構(gòu)方法:
析構(gòu)方法主要用于釋放資源(數(shù)據(jù)庫鏈接糖赔、圖片資源...銷毀某個(gè)對(duì)象)

<?php  

    class Person {

        public $name;
        public $age;

        //構(gòu)造方法
        public function __construct($name, $age) {

            $this -> name = $name;
            $this -> age = $age;
            //打開一個(gè)$conn鏈接數(shù)據(jù)庫的資源萍丐,需要及時(shí)關(guān)閉銷毀
        }

        //寫一個(gè)析構(gòu)方法 
        function __destruct() {
            echo $this->name."銷毀資源,及時(shí)關(guān)閉數(shù)據(jù)庫<br/>";
        }
    }

    $p1 = new Person("zxm", 25);
    $p1 = new Person("lizzy",24);
?>

析構(gòu)方法特點(diǎn):
1放典、析構(gòu)方法會(huì)自動(dòng)調(diào)用逝变;
2、析構(gòu)方法主要用于銷毀資源奋构、但不是銷毀對(duì)象壳影;
3、析構(gòu)方法調(diào)用順序是:先創(chuàng)建的對(duì)象后被銷毀弥臼;
4宴咧、析構(gòu)方法什么時(shí)候被調(diào)用:
(1)當(dāng)程序(進(jìn)程結(jié)束)退出時(shí);
(2)當(dāng)一個(gè)對(duì)象成為垃圾對(duì)象的時(shí)候径缅,該對(duì)象的析構(gòu)方法也會(huì)被調(diào)用(垃圾對(duì)象:沒有任何變量再引用它)掺栅;
(3)一旦一個(gè)對(duì)象成為垃圾對(duì)象箱吕,析構(gòu)方法就會(huì)立即調(diào)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柿冲,一起剝皮案震驚了整個(gè)濱河市茬高,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌假抄,老刑警劉巖怎栽,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宿饱,居然都是意外死亡熏瞄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門谬以,熙熙樓的掌柜王于貴愁眉苦臉地迎上來强饮,“玉大人,你說我怎么就攤上這事为黎∮史幔” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵铭乾,是天一觀的道長(zhǎng)剪廉。 經(jīng)常有香客問我,道長(zhǎng)炕檩,這世上最難降的妖魔是什么斗蒋? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮笛质,結(jié)果婚禮上泉沾,老公的妹妹穿的比我還像新娘。我一直安慰自己妇押,他們只是感情好跷究,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舆吮,像睡著了一般揭朝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上色冀,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天潭袱,我揣著相機(jī)與錄音,去河邊找鬼锋恬。 笑死屯换,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彤悔,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼嘉抓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了晕窑?” 一聲冷哼從身側(cè)響起抑片,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杨赤,沒想到半個(gè)月后敞斋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疾牲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年植捎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阳柔。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡焰枢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舌剂,到底是詐尸還是另有隱情济锄,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布架诞,位于F島的核電站拟淮,受9級(jí)特大地震影響干茉,放射性物質(zhì)發(fā)生泄漏谴忧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一角虫、第九天 我趴在偏房一處隱蔽的房頂上張望沾谓。 院中可真熱鬧,春花似錦戳鹅、人聲如沸均驶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妇穴。三九已至,卻和暖如春隶债,著一層夾襖步出監(jiān)牢的瞬間腾它,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工死讹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞒滴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像妓忍,于是被迫代替她去往敵國(guó)和親虏两。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容