首页 > Web开发 > 详细

php之属性重载和方法重载

时间:2016-06-13 22:09:06      阅读:204      评论:0      收藏:0      [点我收藏+]
<?php
/**
 * 
 * @authors Your Name (you@example.org)
 * @date    2016-06-13 20:40:19
 * @version $Id$
 */
//属性重载

class Student{
    private $name;
    public $age;
    public $xuehao;

    public function __construct($name,$age,$xuehao)
    {
    	$this->name=$name;
    	$this->age=$age;
    	$this->xuehao=$xuehao;
    }
    	//当访问一个不存在的属性是自动
    //读取不可访问属性的值或者不存在时
    public function __Get($name)
    {
     return "属性不存在";		

    }

    //在给不可访问属性赋值或者不存在时
    
    public function __Set($name ,  $value )
    {
    	@$this->data[$name]=$value;
    	echo  "Setting {$name} to {$value}\n" ;
    }


    //判断属性是否存在
    public function __isset ($name)
    {
    	var_dump($name);
    }
    //方法重载
    public function __call($name,$value)
    {
    	echo "方法不存在或不能被调用";
    }

    //当对象转换为字符串时自动调用
    public function __Tostring()
    {
       return $this->name;
    }	


}

$p=new Student("a","10","20100");
echo $p;

  

PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。我们是通过魔术方法(magic methods)来实现的。

当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。本节后面将使用"不可访问属性(inaccessible properties)"和"不可访问方法(inaccessible methods)"来称呼这些未定义或不可见的类属性或方法。

所有的重载方法都必须被声明为 public。 

 

 

 

php之属性重载和方法重载

原文:http://www.cnblogs.com/mengluo/p/5582103.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!