PHP Interceptors_php 예제에서 __set() 및 __get()의 이해와 사용에 대한 간략한 토론

WBOY
풀어 주다: 2023-03-03 06:44:01
원래의
1127명이 탐색했습니다.

"일반적으로 말해서 클래스의 속성은 항상 비공개로 정의하는 것이 현실적인 논리에 더 부합합니다.

그러나 속성을 읽고 할당하는 작업이 매우 빈번하므로 PHP5에서는 속성을 가져오고 할당하고 속성을 확인하기 위해 "__get()" 및 "__set()" 두 함수가 미리 정의되어 있습니다. " 및 "__unset()" 메서드를 사용하여 속성을 삭제합니다.

각 속성에 대한 설정 및 가져오기 메소드가 있습니다. PHP5에는 속성 값을 설정하고 가져오기 위한 특수 메소드인 "__set()" 및 "__get()"가 제공됩니다. 기본적으로 클래스에 추가되지만 생성자 메서드(__construct())와 마찬가지로 다음과 같이 이 두 메서드를 추가할 수 있습니다. 물론 추가할 수도 있습니다. 개인 스타일에 따라: "

<&#63;php
//拦截器的使用
class Computer{
private $name;
private $price;
private $cpu;
private $clocked;

//拦截器之赋值
public function __set($key,$value){
//那么:$key=name $value="联想" 则有: $this->name="联想"
return $this->$key=$value;
}

//拦截器之取值
public function __get($key){
if (isset($key)){
//那么: $key=name 则$this->name 所以自然就return了"联想"
return $this->$key;
}else {
return NULL;
}
}
}
//正是因为的拦截器存在,才能如此用
$computer=new Computer();
$computer->name="联想";
$computer->price=5600;
$computer->cpu="八核";
$computer->clocked="1600hz";

echo $computer->name;
echo $computer->price;
echo $computer->cpu;
echo $computer->clocked;
로그인 후 복사

위 내용은 PHP 인터셉터의 __set() 및 __get()에 대한 이해와 사용에 대해 편집자가 가져온 전체 내용입니다. Script Home에 많은 지원을 바랍니다~

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿