国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php 修飾符和魔術方法 (基礎)

luodongseu / 1550人閱讀

摘要:中有三種訪問修飾符,它們可以分別用在類的屬性和方法上類的屬性和方法統稱為類的成員,用來修飾類成員的訪問權限公共的默認受保護的私有的常用魔術方法,,,,,,,,,在下面的例子中展示一下用法調用方法調用方法可以將所有變量都能

PHP中有三種訪問修飾符,它們可以分別用在類的屬性和方法上(類的屬性和方法統稱為類的成員),用來修飾類成員的訪問權限

public(公共的、默認)

protected(受保護的)

private(私有的)

php 常用魔術方法:

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __invoke(), __clone() 

在下面的例子中展示一下用法

class Test
{
    private $a = "a";
    protected $b = "b";
    public $c = "c";

    public function __set($name, $value)
    {
        // TODO: Implement __set() method.
    }

    public function __get($name)
    {
        // TODO: Implement __get() method.
    }

    public function __construct()
    {
        echo "begin construct!";
    }

    public function __destruct()
    {
        echo "begin destruct!";
    }

    public function __invoke()
    {
        echo "try to invoke!";
        // TODO: Implement __invoke() method.
    }

    public function __isset($name)
    {
        // TODO: Implement __isset() method.
    }

    private function get1()
    {
        var_dump("private get a :" . $this->a . "
");
        var_dump("private get b :" . $this->b . "
");
        var_dump("private get c :" . $this->c . "
");
    }

    protected function get2()
    {
        var_dump("protected get a :" . $this->a . "
");
        var_dump("protected get b :" . $this->b . "
");
        var_dump("protected get c :" . $this->c . "
");
    }

    public function get3()
    {
        var_dump("public get a :" . $this->a . "
");
        var_dump("public get b :" . $this->b . "
");
        var_dump("public get c :" . $this->c . "
");
    }

}

調用Test方法
$t = new Test();
$t(123); // 調用invoke

$t->get3();
// public 方法可以將所有變量都能被調用到
// public get a :a
// public get b :b
// public get c :c

// __set 和 __get 魔術方法使用,如果不定義,那么對于 private 屬性 $a 將無法被操作
//$t->a = "123";
//echo $t->a;

//$t->get1(); // private 方法外部不可被調用
//$t->get2(); // protected 方法外部不可被調用


class Test2 extends Test
{
//    private $b = ""; // 報錯,子類繼承修飾符等級不能低于父類
    protected $b;// ok 或  public $b
    private function get1()
    {
        var_dump("Test2 private get a :" . $this->a . "
"); // 報錯,私有變量不能被繼承
        var_dump("Test2 private get b :" . $this->b . "
");
        var_dump("Test2 private get c :" . $this->c . "
");
    }

    public function get2() // 繼承時修改了 訪問權限
    {
//        var_dump("get a :" . $this->a . "
");// 報錯,私有變量不能被繼承
        var_dump("Test2 public get b :" . $this->b . "
");
        var_dump("Test2 public get c :" . $this->c . "
");
    }

    public function get3()
    {
//        var_dump("get a :" . $this->a . "
");// 報錯,私有變量不能被繼承
        var_dump("Test2 public get b :" . $this->b . "
");
        var_dump("Test2 public get c :" . $this->c . "
");
    }
}

$t2 = new Test2();
$t2->get3();
$t2->get2(); // protected方法外部無法被調用,但修改為public后可以被使用
//$t2->get1(); // private方法外部無法被調用

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28467.html

相關文章

  • PHP面向對象

    摘要:面向對象面向對象基礎面向對象什么是類具有相同屬性特征和方法行為的一系列個體的集合,類是一個抽象的概念。析構函數,當一個對象被銷毀前,自動調用。作用是為新克隆的對象進行初始化賦值對象序列化時,自動調用。使用抽象類的作用限制實例化。 面向對象 面向對象基礎 面向對象 什么是類? 具有相同屬性(特征)和方法(行為)的一系列個體的集合,類是一個抽象的概念。 什么是對象? 從類中,拿到的具有具體...

    seanlook 評論0 收藏0
  • PHP_OOP

    摘要:特殊在,方法被對象調用執行時,會自動確定是那個對象調用的該方法,會使用該對象為方法內的賦值構造析構類,沒有作用域,作用域,只是講,函數內和函數外。析構在對象消失對象被銷毀時,也會自動執行一個方法,稱之為析構方法。 相關定義 對象(object):現實生活中的實體,在編程語言中的體現。實體都有屬性和功能。一組數據,和操作管理這些數據的操作,定義在一起就形成了一個實體,稱之為對象。(屬性和...

    RiverLi 評論0 收藏0
  • PHP面試常考內容之面向對象(3)

    摘要:面試專欄正式起更,每周一三五更新,提供最好最優質的面試內容。繼上一篇面試常考內容之面向對象發表后,今天更新面向對象的最后一篇。面向對象的主要特征為封裝繼承多態。為了提高內聚性減少引起變化,單一原則是低耦合高內聚的面向原則上的引申。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優質的PHP面試內容。繼上一篇PHP面試常考內容之面向對象(2)發表后,今天更新面向對象的最后一篇(3...

    xfee 評論0 收藏0
  • 類的關鍵字、魔術方法與單態設計模式

    摘要:方法如無的調用,則默認為為靜態方法。聲明靜態方法會有錯誤提示,但很方便,能用盡量用效率高。 一、面向對象的關鍵字 1.instanceof操作符: 對象是否屬于類(檢測繼承性),如下: class Person {}; class Student extends Person {}; $p=new Person; $s=new Student; ...

    bovenson 評論0 收藏0
  • 面向對象的特性:封裝性

    摘要:一封裝的特性對象的屬性或方法加上修飾符盡可能隱藏內部細節訪問控制特性修飾符種類二修飾符私有性封裝,外部不能調用,內部其他成員可以,用于為其他方法鋪路的方法,不露出接口。 一、封裝的特性 1.對象的屬性或方法加上修飾符 2.盡可能隱藏內部細節 3.訪問控制 4.PHP5特性 5.修飾符種類:public/private/protected/var 二、修飾符 1.private: ...

    freecode 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<