PHP如何修改和获取private变量的值

原创 2016年05月31日 14:21:58
有时候为了安全,我们需要把把类的属性定义为private。但是,但是我们有时候却需要去操作这些私有成员变量,如果直接访问是会报错的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来为私有成员变量赋值和获取值,以及检查属性的“__isset()”和删除属性的方法“__unset()”。
PHP5中给我们提供了专门为私有成员变量设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一样, 类里面添加了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加:
//__get()方法用来获取私有属性
private function __get($property_name)
{
if(isset($this->$property_name))
{
return($this->$property_name);
}else
{
return(NULL);
}
}
//__set()方法用来设置私有属性
private function __set($property_name, $value)
{
$this->$property_name = $value;
}

有了这2个方法以后,就可以直接执行:
echo $instance->$property 
或 $instance->$property = “a”;
来获取和修改private变量的值了,如果没有手动添加__get();和__set();方法则会报错,
因为我们要访问的是私有变量。






php 给对象私有及受保护的成员变量赋值的几种方法

1.构造方法赋值
  • navioo
  • navioo
  • 2016年07月10日 13:47
  • 7741

PHP中Private私有属性继承使用的问题

类中的私有属性或者方法是bune
  • yangfanzn
  • yangfanzn
  • 2014年08月12日 15:34
  • 2247

PHP面向对象之private权限控制

/*** ====笔记部分==== 权限修饰符 作用: 用来说明 属性/方法的权限特点 写在 属性/方法前面 共有3个权限修饰符 private 私有的  , 保护的最严 protect...
  • binghui1990
  • binghui1990
  • 2013年06月06日 14:22
  • 9884

js 获取php 变量

var arr="";
  • u011447828
  • u011447828
  • 2017年01月17日 10:32
  • 2301

php面向对象之private、protected、public三者权限控制区别

private protected public 本类内 Y Y Y 子类内 N Y ...
  • u011436736
  • u011436736
  • 2016年08月15日 01:17
  • 8186

MFC edit控件实现自动换行

必须设置Vertical Scrollbar = TRUE 必须设置MultiLine = TRUE 必须设置Horizontal Scrollbar = FALSE 必须设置Auto HScr...
  • a200638012
  • a200638012
  • 2016年07月08日 17:22
  • 4786

设置MFC Edit control可以换行显示

MFC Edit control可以换行显示 1.设置edit control 属性Multiline为true 2.写入数据时,想换行的时候写入"\r\n"即可,CString str.Re...
  • a780902723
  • a780902723
  • 2014年12月09日 16:52
  • 2469

MFC中EDIT控件实现换行

一、通过回车换行: 这里要有两个设置 .将控件的属性设置为Mutilines->true; .将控件的另一个属性设置为Want return->true. 水平和垂直滚动条设置...
  • dearwind153
  • dearwind153
  • 2015年12月09日 21:13
  • 3890

PHP如何修改和获取private变量的值

有时候为了安全,我们需要把把类的属性定义为private。但是,但是我们有时候却需要去操作这些私有成员变量,如果直接访问是会报错的,因此在PHP5中,预定义了两个函数“__get()”和“__set(...
  • zhanqixuan22
  • zhanqixuan22
  • 2016年05月31日 14:21
  • 1063

PHP之面向对象三大成员变量

2017.04.10潇照的第一篇博客~~~~~~~~~~~ 面向对象类中的三大成员变量public,protected,private public成员变量可以被自己,子类,任何部位访问 ...
  • qq_38247638
  • qq_38247638
  • 2017年04月10日 16:42
  • 287
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP如何修改和获取private变量的值
举报原因:
原因补充:

(最多只允许输入30个字)