외부 호출 클래스의 개인 속성을 학습하는 PHP

little bottle
풀어 주다: 2023-04-06 12:10:02
앞으로
2605명이 탐색했습니다.

이 글은 주로 외부 호출 클래스의 사유 재산에 대해 다루고 있는데, 이는 특정 참고 가치가 있으며 관심 있는 친구들이 이에 대해 배우고 도움을 받을 수 있기를 바랍니다.

외부 호출 클래스의 전용 속성

먼저 PHP 클래스의 __get__set 함수에 대해 알아봅시다접근할 수 없는 속성을 가져오려고 하면 클래스가 자동으로 __get 함수를 호출합니다.
접근할 수 없는 속성을 설정하려고 하면 클래스가 자동으로 __set 함수를 호출합니다. __get__set函数
当试图获取一个不可达属性时,类会自动调用__get函数。
当试图设置一个不可达属性时,类会自动调用__set函数。

首先,来看一下__get函数,先来获取一个可达属性试试:

<?php
    class A{
        public $a=1;
        private $b=2;
        function __get($name){
            echo &#39;you can get &#39;.$name;
        }
    }
    $dy = new A();
    echo $dy->a;
?>
로그인 후 복사

看一下它的返回:

1
로그인 후 복사
로그인 후 복사
로그인 후 복사

没有问题,没有调用__get函数,现在我来访问一个私有的不可达属性:

<?php
    class A{
        public $a=1;
        private $b=2;
        function __get($name){
            echo &#39;you can get &#39;.$name;
        }
    }
    $dy = new A();
    echo $dy->b;
?>
로그인 후 복사

会发现:

you can get b
로그인 후 복사

说明这里调用了__get函数,我再来看一下__set函数,同样也是先使用可达的public属性:

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
            echo &#39;you can get &#39;.$name.$val;
        }
    }
    $dy = new A();
    $dy->a = 1;
    echo $dy->a;
?>
로그인 후 복사

看一下输出:

1
로그인 후 복사
로그인 후 복사
로그인 후 복사

使用成功,没有问题,接着我们来使用私有属性:

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
            echo &#39;you can get &#39;.$name.$val;
        }
    }
    $dy = new A();
    $dy->b = 1;
    echo $dy->b;
?>
로그인 후 복사

这时看到:

you can get b1

PHP Fatal error:  Cannot access private property A::$b in /usercode/file.php on line 11
로그인 후 복사

这里调用了__set函数并提示我们不能使用类的私有属性。
现在来通过__set

우선, __get 함수를 살펴보겠습니다. 먼저 연결 가능한 속성을 가져옵니다.

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
                $this->$name=$val;
        }
        function B(){
            echo $this->b;
        }
    }
    $dy = new A();
    $dy->b = 1;
    $dy->B();
?>
로그인 후 복사

결과를 살펴보세요. #🎜 🎜#
1
로그인 후 복사
로그인 후 복사
로그인 후 복사

문제 없습니다. __get 함수는 호출되지 않습니다. 이제 연결할 수 없는 비공개 속성에 액세스하겠습니다.

rrreee

다음을 찾을 수 있습니다. #🎜 🎜#rrreee 여기서는 __get 함수가 호출된다고 설명합니다. __set 함수를 살펴보겠습니다. >public 속성을 ​​먼저 사용합니다: # 🎜🎜#rrreee출력을 살펴보세요:

rrreee#🎜🎜# 성공적으로 사용되었으므로 문제 없습니다. 그런 다음 비공개 속성을 사용합니다: #🎜🎜#rrreee# 🎜🎜#이때 다음을 볼 수 있습니다: #🎜 🎜#rrreee#🎜🎜#여기에서 __set 함수가 호출되고 클래스의 개인 속성을 사용할 수 없다는 메시지가 표시됩니다.
이제 __set 함수를 사용하여 비공개 속성의 외부 사용을 구현해 보겠습니다. #🎜🎜#rrreee#🎜🎜#출력을 살펴보세요. #🎜🎜#rrreee#🎜🎜#이것은 다음을 의미합니다. 사용은 성공적입니다. #🎜🎜##🎜🎜#관련 튜토리얼: #🎜🎜#PHP 비디오 튜토리얼#🎜🎜##🎜🎜#

위 내용은 외부 호출 클래스의 개인 속성을 학습하는 PHP의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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