亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 35
粉絲 0
評論 0
訪問量 40047
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
匿名對象與匿名類,Trait類,類的自動加載,對象的序列化與反序列化-2018-9-16
THPHP
原創(chuàng)
843人瀏覽過

1、匿名對象與匿名類的實現(xiàn)過程:

實例

<?php
class a{
    private $name ='甜歌';

    public function stror($name){
        return $this->name.'看上了:<span style="color:red;">'.$name.'</span>';
    }
}
$a = new a();
echo $a->stror('帥哥').'<hr>';
// 匿名對象
echo (new a())->stror('好哥們').'<hr>';
//匿名類
echo (new class{
    private $name = '壞孩子';
    public function stror($name){
        return $this->name.'喜歡上了:<span style="color:red;">'.$name.'</span>';
    }
})->stror('帥哥'),'<hr>';

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

2、Trait類的聲明與工作原理:

實例

<?php
class a{
    //  受保護的成員變量
    protected $name;
    public function __construct($name='小白'){
        $this->name=$name;
    }
    public function study($course = 'php'){
        return $this->name . '學(xué)習(xí):' . $course;
    }
}
trait Cour{
    public $title = '小名';
    public function study($name = '踢足球'){
        return $this->name .'在學(xué)習(xí)'.$name;
    }
}
trait Cour1{
    public function study($name = '打籃球'){
        return $this->name .'和'.$this->title.$name;
    }
}
class Student extends a{
    use Cour,Cour1{
        // 當(dāng)Cour類中的方法與Cour1類中的方法同名就替換成 Cour1的類方法,
        Cour::study insteadof Cour1;
        // 給 Cour1類中的方法起個別名
        Cour1::study as MySport;
    }
}
// Student對象實例化
$Student = new Student();
// 調(diào)用的是 $Student類中的trait Cour類study方法
echo $Student->study().'<hr>';
// 調(diào)用的是 $Student類中的trait Cour1類study方法,但是與方法同名了,所以起了調(diào)用的是MySport別名
echo $Student->MySport().'<hr>';

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

3、類的自動加載函數(shù)的寫法:

實例

<?php
spl_autoload_register(function ($className){
    // 自動加載class文件夾中的后綴.php文件
    require 'class/'.$className.'.php';
});

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

4、對象的序列化與反序列化的原理與應(yīng)用:

實例

<?php
class demo{
        public $name;
        public $age;
        public $salary;
        // 構(gòu)造方法
        public function __construct($name,$age,$salary=0){
            $this->name=$name;
            $this->age=$age;
            $this->salary=$salary;
        }
        // 當(dāng)有序列化的屬性時,自動調(diào)用
        public function __sleep(){
            return ['name','age','salary']; // 要序列化的屬性
        }
        // 如果反序列化時,wakeup方法中有相同的屬性時,就以wakeup方法中的值為最新值
        public function __wakeup(){
            $this->age = 48;
            $this->name = '天歌鳳舞';
        }
    }
$obj = new demo('天弘',28,5000);
// 序列化之前對象屬性
echo '姓名:'.$obj -> name.',年齡:'.$obj->age.',工資:'.$obj->salary.'<br>';
// 序列化之后對象屬性
$obj1 = serialize($obj);
echo $obj1.'<hr>';
// 反序列化
$obj2 = unserialize($obj1);
// 反序列化之后的對象屬性
echo '姓名:'.$obj -> name.',年齡:'.$obj->age.',工資:'.$obj->salary.'<br>';
// 反序列化之后
var_dump($obj2);
echo '<hr>';

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

5、面向?qū)ο缶幊痰幕纠斫?/strong>

    訪問一個類,必須要實例化對象。這樣才可以訪問對象中的類。當(dāng)有很多類方法相同的情況下,為了代碼復(fù)用性,我們可以把對象實例化來進行調(diào)用與訪問。以及繼承其他的類進行訪問調(diào)用,這樣代碼就更加簡潔一些。

  可以把對象中的類,看作為一個方法類,當(dāng)我們需要哪些代碼時,進行對象的實例化進行調(diào)用他的方法類。

    在對象中有三個重要的訪問控制符:private 私有化:屬性僅在當(dāng)前對象內(nèi)部可以使用,外部類不可以調(diào)用。public公開的:可以在外部類進行調(diào)用與使用。protected 受保護:僅限本類或本類的子類訪問,外部不可訪問與代用

    有了類才可以實例化對象,實例化對象后才可以進行調(diào)用類(包含繼承類),訪問類,成員屬性!對象中沒有類,也只是個無用的代碼!


批改狀態(tài):未批改

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)