• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!
首页 > IT技术 > PHP > 内容

php面向对象编程之__get()

2015-06-10 21:38:24   来源:叶景网络
    在php面向对象编程中,类的成员属性被private封装后,如果试图在外面调用它则会出现“不能访问某个私有属性”的错误。为了解决这个问题,我们可以使用魔术方法”__get()“。
    魔术方法__get()的作用
    在程序运行过程中,通过它可以在对象的外部获取私有成员属性的值。
    我们来看一个关于__get()的实例。
    <?php
    class Person  {         
    private $name;
    private $age;
    function __construct($name="", $age=1) {  
    $this->name = $name;
    $this->age = $age;
    }
    //在类中添加__get()方法,在直接获取属性值时自动调用一次,以属性名作为参数传入并处理
    private function __get($propertyName)  {    //在方法前使用private修饰,防止对象外部调用
    if($propertyName=="age") {
    if($this->age > 30)
    return $this->age-10;
    else
    return $this->$propertyName;
    } else {
    return $this->$propertyName;
    }
    }
    }
    $Person=new Person("张三", 40);   //通过Person类实例化的对象,并通过构造方法为属性赋初值
    echo "姓名:".$Person->name."<br>";   //直接访问私有属性name,自动调用了__get()方法可以间接获取
    echo "年龄:".$Person->age."<br>";    //自动调用了__get()方法,根据对象本身的情况会返回不同的
    ?>
    在上面的程序中, __get方法对$age属性作了限制,如果对象中年龄大于30刚则隐瞒了10岁,否则返回真实年龄。
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
PHP通过soap调用.net接口asmx文件 PHP通过soap调用.ne
PHP开发环境配置 PHP开发环境配置
wamp集成环境的虚拟域名配置方法 wamp集成环境的虚拟
wamp独立安装配置 wamp独立安装配置
关注排行RANKING
1

PHP通过soap调用.net接口asmx文件

PHP通过soap调用.net接口asmx文件 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

2

PHP开发环境配置

PHP开发环境配置 下载PHP安装程序,并解压缩。(下载页面为http: www php net downloads php,下...

3

wamp集成环境的虚拟域名配置方法

wamp集成环境的虚拟域名配置方法 最近,发现身边很多人用wamp集成环境,这个虽然比较快捷,一步到位,但是只能访...

4

wamp独立安装配置

wamp独立安装配置 apache 中的 httpd conf LoadModule php5_module "D: lamp php5 php5apache2_2 dll " 加载模块并开启

5

php 获取今天明天昨天时间戳

php 获取今天明天昨天时间戳 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

6

PHP获取服务器信息 MySql版本和浏览器信息

PHP获取服务器信息 MySql版本和浏览器信息 1、$_SESSION[ PHP_SELF ] -- 获取当前正在执行脚本的文件名 2...

7

smarty 截取字符串函数 truncate的用法

smarty 截取字符串函数 truncate的用法 smarty truncate 截取字符串,从字符串开始处截取某长度的字符,默认的长度为8...

8

php编程常用函数方法等

php编程常用函数方法等 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站...

9

如何让ThinkPHP的模板引擎达到最佳效率

如何让ThinkPHP的模板引擎达到最佳效率 默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文...