(1)这两个方法是自动调用的

(2)这两个方法只有在成员变量是private的时候才会自己调用

testclass.php

<?php

    class testclass
    {

        private $var1 = "a";

        public function __construct()
        {
        }

        public function __get($pro)
        {
            return $this->$pro;
        }

        public function __set($pro,$value)
        {
            $this->$pro = $value;
        }

        public function __destruct()
        {
        }
    }
<?php

	include_once "testclass.php";
	$t = new testclass();
	$t->var1 = "c";
	echo $t->var1;  //输出 c

  

(3)如果是public的成员变量,可是使用_isset()和unset()函数判断

如果是private成员变量需要实现__isset()成员函数和unset()成员函数才能判断一个成员是否存在或者销毁一个成员变量

		public function __isset($pro)
		{
			return isset($this->$pro);
		}
		public function __unset($pro)
		{
			unset($this->$pro);
		}

  

php类的__get和__set方法的更多相关文章

  1. PHP中的__get()和__set()方法获取设置私有属性

    在类的封装中,获取属性可以自定义getXXX()和setXXX()方法,当一个类中有多个属性时,使用这种方式就会很麻烦.为此PHP5中预定义了__get()和__set()方法,其中__get()方法 ...

  2. PHP5中__get()、__set()方法

    标题是:PHP5中__get().__set()方法,不错,在PHP5以下(PHP4)是没有这两个方法的. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性 ...

  3. php中的__get和__set方法

    1.__get() 作用:当实例化对象调用一个没有定义的属性时,会自动调用__get()方法 当实例化对象调用一个私有或者受保护的属性时,也会调用这个方法,方式类似 结果是:你访问的公开属性:name ...

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

    __get()方法,官方手册上是这样解释的 : ' 当调用(自己加的:或设置|赋值)当前环境下未定义或不可见的类属性或方法时,重载方法会被调用.本节后面将使用"不可访问属性(inaccess ...

  5. php中__get()和__set的用法

    php版本5.6 一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来 ...

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

    刚刚看到一个对我有用的文章,我就把它摘抄下来了.                                                                        php面 ...

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

    php面向对象_get(),_set()的用法 一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__ge ...

  8. 魔术方法__get()、__set()和__call()的用法

    刚开始学习魔术方法时对__get().__set() 和__call()的用法和作用不是太了解,也有一些误解... 现在分享一下个人的理解,大家共勉一下: __get().__set() 和__cal ...

  9. PHP:__get()、__set()、__isset()、__unset()、__call()、__callStatic()六个魔术方法

    哎呀呀,今天小仓鼠学到了魔术方法,简称魔法,哈哈哈哈,神经病啊~ 平时在面试的时候,也会遇到问魔术方法有哪些的问题哦!今天我们来了解一下下~ 1.__get() 形式: __get($objName) ...

随机推荐

  1. 转:用C++实现的一种插件体系结构-----概述

    用C++实现的一种插件体系结构-----概述 本文讨论一种简单却有效的插件体系结构,它使用C++,动态链接库,基于面向对象编程的思想.首先来看一下使用插件机制能给我们带来哪些方面的好处,从而在适当时候 ...

  2. $.unique()去重问题

    var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010);$.unique(yearArray); 返回 2009, 2010, 20 ...

  3. latex 竖排子图的生成

    latex命令如下: 需要的包为: \usepackage{graphicx} \usepackage{subfigure} \begin{figure*}%加*的作用是跨栏(双栏和单栏latex的区 ...

  4. TAP/TUN浅析(一)

    参考链接:https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/ TAP 设备与 VETH 设备     TUN/T ...

  5. python编程(一)汉诺塔

    题目描述 编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A.B.C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法. 例: move(3, 'A', 'B' ...

  6. Leetcode--Generate Parentheses

    主要考察栈的理解 static vector<string> generateParenthesis(int n) { vector<string> res; addingpa ...

  7. 用原生js获取class

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. svg转化成canvas以便生成base64位的图片

    很久前写了关于把html转成图片的一个例子,最近有出了新的问题.利用html2canvas.js文件把html转成base64位的图片是没什么问题的,但也不是绝对的,比如这时候不能碰见svg这个鬼,h ...

  9. Eclipse中全局搜索和更替

    Eclipse全局搜索步骤  使用快捷键"ctrl+H"打开文件搜索对话框,选择"File Search"标签,在Containing text中输入你需要搜索 ...

  10. 张艾迪(创始人):Be.Time+Cr.Idear的创新理念

    The World No.1 Girl :Eidyzhang The World No.1 Internet Girl :Eidyzhang AOOOiA.global Founder :Eidyzh ...