php中的__get和__set方法

1.__get() 作用:当实例化对象调用一个没有定义的属性时,会自动调用__get()方法

        当实例化对象调用一个私有或者受保护的属性时,也会调用这个方法,方式类似

结果是:你访问的公开属性:name,不存在

2.__set() 作用:1.给未定义的属性赋值,2.给私有或者受保护的属性赋值。

借鉴

佳佳嘉佳佳https://www.cnblogs.com/finalanddistance/p/9324177.html

原文地址:https://www.cnblogs.com/cyk2/p/11254364.html

时间: 2024-10-23 04:48:37

php中的__get和__set方法的相关文章

PHP类中的__get()和__set函数到底有什么用?

当试图获取一个不可达变量时,类会自动调用__get. 同样的,当试图设置一个不可达变量时,类会自动调用__set. 在网站中,这两个并不是什么非用不可的函数. 例如: Class Test {     private $a = 1;     private $b = 2;     public  $c = 3;       public function  __get($vname)     {         return "you can not get";     }      

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

PHP中__get()和__set()的用法实例详解 在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性,对每个字段进行set和get的操作.只需要加上两个魔术方法即可 php面向对象_get(),_set()的用法 一般来说,总是把类的属性定义为private,这更符合 现实的逻辑.但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属 性.类似于java中的javabean的操作,

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

__get()方法,官方手册上是这样解释的 : ' 当调用(自己加的:或设置|赋值)当前环境下未定义或不可见的类属性或方法时,重载方法会被调用.本节后面将使用"不可访问属性(inaccessible properties)"和"不可访问方法(inaccessible methods)"来称呼这些未定义或不可见的类属性或方法'.'未定义'容易理解.我们知道类权限控制有三个关键字分别是'public','private','protected',其中除了'public'

php中__get()和__set的用法

php版本5.6 一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性.类似于java中的javabean的操作,使用的方法也类似,只是不需要像javabean中那样,对每个字段进行set和get的操作.只需要加上两个魔术方法即可.即私有成员的设值和取值的操作.在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()

详解php的魔术方法__get()和__set()

先看看php官方文档的解释:__set() is run when writing data to inaccessible properties.__get() is utilized for reading data from inaccessible properties. 究竟用中文怎么翻译呢?inaccessible :n. 难达到:难接近:无法理解.有代码有真相: <?php error_reporting(E_ALL); class stu{ private $a; private

PHP面向对象魔术方法之__get 和 __set函数

l 基本的介绍 (1) 当我们去使用不可以访问的属性时,系统就会调用__get方法. (2) 不可以访问的属性指的是(1 . 该属性不存在 2. 直接访问了protected或者private属性) (3) 当程序员去给不可以访问的属性直接赋值,系统就会调用__set方法 l 举例说明 需求是: 如果对象有一个成员变量是private.protectd的,我希望在在类的外部通过 : $对象名->变量名的方式来赋值和取值,怎么办? 代码如下 <?php header('content-type:

php中常用到的魔术方法

PHP面向对象中有很多功能很强大,不得不说的就是魔术方法了.今天抽出时间记录几个比较常用的魔术方法: 1.__construct 这是构造函数,指当一个类被实例化的时候就会自动调用的函数.那我们可以在这里初始化变量的值.例如: class Score { public $chinese; public $english; public $math; public function __construct($chinese=100,$english=99,$math=98) { $this->ch

PHP 中的 9 个魔术方法

这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始.它可能魔幻,但是并不需要魔杖. 这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在php特定事件下将会被触发.这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一个简单的例子在 last post,即我们使用一个构造器-使用这个作为我们第一个例子 __construct 构造器是一个魔术方法,当对象被实例化时它会被调用.在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何

PHP中的11个魔术方法总结:__construct,、__destruct、__call等

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload 1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法__set( $proper