php中__set和__get要怎么理解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中__set和__get要怎么理解?相关的知识,希望对你有一定的参考价值。

一个是赋值,一个是取值,有点绕不过弯

没什么绕不过弯的东西啊,就是表面上定义的那样,php面向对象里面的取值和赋值,没必要把简单的问题复杂化

追问

好吧,就是理解差,有些地方不明白

参考技术A __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。
__set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。(key=>value)本回答被提问者采纳
参考技术B 通俗来说__set就是给类的私有属性赋值

__get获取类私有属性的值
参考技术C $ibj是一个类的实例

$obj–>a的时候自动调用__get

$obj–>a=10的时候自动调用__set

一般每个类都会有的,不用实现
除非你想自己定义一个关于这个类的规则,如想讲每个类的$a属性的取值都加10的情况

以上是关于php中__set和__get要怎么理解?的主要内容,如果未能解决你的问题,请参考以下文章

php 魔术方法__get()和__set()理解

(实用篇)浅谈PHP拦截器之__set()与__get()的理解与使用方法

PHP魔术法__set和__get

理解 $_POST$_GET php://input

PHP类中的__set()和__get()方法用在啥地方?可以用例子说明一下么...

PHP中__get()和__set()的用法实例详解