php 给对象私有及受保护的成员变量赋值的几种方法
来源:互联网 发布:鼠标垫什么牌子好 知乎 编辑:程序博客网 时间:2024/06/05 09:42
1.构造方法赋值
<?phpclass City{private $_cityName;private $_population;//function city($_cityName,$_population){} php5.3.3起在有命名空间的类中,类同名方法不再视为构造方法而是常规方法,无命名空间类中不影响public function __construct($_cityName,$_population){$this->_cityName = $_cityName;$this->_population = $_population;}public function getCityName(){return $this->_cityName;}public function getPopulation(){return $this->_population;}}$nanjing = new City('南京',10000000);echo '城市:'.$nanjing->getCityName(),'<br/>';//城市:南京echo '人口:'.$nanjing->getPopulation(),'<br/>';//人口:10000000
2.魔术方式赋值和调用:__set()、__get()
<?phpclass City{private $_cityName;private $_population;//magic method: __set() /**当给一个无访问权限或不存在的属性赋值时,__set()魔术方法会自动调用,并传入两个参数:属性和属性值$suzhou->_cityName='苏州' ---无权访问权限--> __set('_cityName','苏州');**/public function __set($property_name,$property_value){$this->$property_name = $property_value;}//magic method: __get()/**当我们调用一个权限上不允许访问的属性或者是不存在的属性时,__get()魔术方法会自动调用,并且自动传参,参数名是属性名$suzhou->_cityName ---无访问权限--> __get(_cityName);**/public function __get($property_name){if(isset($this->$property_name)){return $this->$property_name;}else{return null;}}}//设置__set()和__get()方法,可以在类外部像给public修饰的成员变量一样赋值和调用$suzhou = new City();$suzhou->_cityName = '苏州'; $suzhou->_population = 7000000;echo '城市:'.$suzhou->_cityName,'<br/>';//城市:苏州echo '人口:'.$suzhou->_population,'<br/>';//人口:7000000
3.调用类常规方法传参赋值
<?phpclass City{private $_cityName;private $_population;private $_factory;function setCityName($_cityName){$this->_cityName = $_cityName; }function setPopulation($_population){$this->_population = $_population;}function getCityName(){return $this->_cityName;}function getPopulation(){return $this->_population;}//function set($name,$value){$this->_factory[$name] = $value;//以数组的形式存储变量赋值}function get($name){return $this->_factory[$name];}}$shanghai = new City();//通过函数传参的形式给对象指定私有变量赋值,通过指定函数获取指定私有变量值$shanghai->setCityName('上海'); $shanghai->setPopulation(30000000);echo '城市:'.$shanghai->getCityName(),'<br/>'; //城市:上海echo '人口:'.$shanghai->getPopulation(),'<br/>';//人口:30000000$shanghai->set('totalArea','6340平方公里');$shanghai->set('areaCode','017');$shanghai->set('zipCode',200000);echo '面积:'.$shanghai->get('totalArea'),'<br/>';//面积:6340平方公里echo '区号:'.$shanghai->get('areaCode'),'<br/>';//区号:017echo '邮编:'.$shanghai->get('zipCode'),'<br/>';//邮编:200000
0 0
- php 给对象私有及受保护的成员变量赋值的几种方法
- iOS访问类的私有成员变量及私有方法
- iOS访问类的私有成员变量及私有方法
- 反射(四)使用反射机制调用对象的私有方法及成员变量
- 访问C++类对象中私有成员变量的方法
- OC 局部变量 成员变量 属性及方法 OC成员变量的私有性
- 给成员变量赋值的两种方式的区别
- 变量: 赋值 的几种方法
- Objective C 有没有 共有 私有 受保护的 成员变量概念?
- java反射机制 给类的私有变量赋值。
- PHP数组的几种赋值方法
- 受保护的成员变量和方法(protected)
- JavaSE第六十四讲:使用反射机制调用对象的私有方法、访问对象的私有成员变量
- php在对象之外访问其私有属性private及保护属性protected的特例
- java final修饰成员变量赋值的二种方法
- 封装,this,给成员变量赋值的方式(get(),构造方法):
- 通过操作地址的方法来访问C++类对象中私有成员变量
- 关于访问C++类对象中私有成员变量的方法,不考虑用友元
- React Native开发必备的10个插件包
- encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
- 6、Eclipse下加载tomcat的配置
- Access在winform下无法进行插入,修改,删除的问题
- 比较原始的QQ大家来找茬的原型
- php 给对象私有及受保护的成员变量赋值的几种方法
- java开发编译器:LR 状态机的缺陷与改进
- 二叉排序树
- SGI的内存管理
- 【Python学习笔记】使用list和tuple
- 谈谈Js继承的那些事儿
- memcached windows安装使用
- 微信公众平台开发[2] —— 微信端分享功能
- 【Android笔记】MediaPlayer基本使用方式