>  기사  >  백엔드 개발  >  외부 호출 클래스의 개인 속성을 학습하는 PHP

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

little bottle
little bottle앞으로
2019-04-26 18:02:372612검색

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

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

먼저 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제