成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

PHP面向?qū)ο缶幊讨械腳_set和__get方法

在PHP面向?qū)ο缶幊讨校覀兘?jīng)常會遇到需要訪問protected和private修飾的屬性的情況。為了方便操作這些屬性,PHP提供了兩個特殊的魔術(shù)方法__set和__get。通過這兩個魔術(shù)方法,我們可

在PHP面向?qū)ο缶幊讨?,我們?jīng)常會遇到需要訪問protected和private修飾的屬性的情況。為了方便操作這些屬性,PHP提供了兩個特殊的魔術(shù)方法__set和__get。通過這兩個魔術(shù)方法,我們可以實現(xiàn)對私有屬性的賦值和獲取。接下來我們將介紹如何編寫代碼來使用這兩個魔術(shù)方法。

編寫包含私有屬性的類

首先,我們需要編寫一個包含私有屬性的類。以下是一個示例代碼:

```php

class A {

private $n1;

private $n2;

}

```

在上面的代碼中,我們定義了一個名為A的類,并聲明了兩個private屬性$n1和$n2。

使用__set()和__get()方法

接下來,我們需要在類中實現(xiàn)__set()和__get()方法來成對使用,以實現(xiàn)對私有屬性的賦值和獲取。下面是相應(yīng)的代碼片段:

```php

public function __set($pro_name, $pro_val){

$this->$pro_name $pro_val;

}

public function __get($pro_val){

if(isset($pro_val)){

return $this->$pro_name;

} else {

return null;

}

}

```

在上面的代碼中,__set()方法用于設(shè)置私有屬性的值,而__get()方法用于獲取私有屬性的值。在__get()方法中,我們還進行了對屬性是否存在的判斷。

創(chuàng)建對象并訪問私有屬性

現(xiàn)在,我們可以創(chuàng)建一個對象并嘗試訪問私有屬性。例如,我們可以創(chuàng)建一個對象$aq,并嘗試訪問它的$n1屬性。以下是相應(yīng)的代碼:

```php

$aq new A();

$aq->n1 39;

echo $a1->n1;

```

通過上面的代碼,我們成功地對私有屬性$n1進行了賦值并獲取,并且可以正常地輸出$n1的值。

通過使用__set和__get這兩個魔術(shù)方法,我們可以更靈活地操作私有屬性,提高代碼的可讀性和可維護性。在實際項目開發(fā)中,合理地運用這兩個方法將會給我們帶來很多便利。

標(biāo)簽: