标签:
类和对象概念 任何东西都可以称为对象,指具体的信息
类是对所有同类的对象抽象出来的共性
定义和使用类
/*访问修饰符 public代表公有的,可以在任何地方调用,默认项 protected受保护的,只能在类或类的子类里面访问 private私有的,只能在类里面访问 */ //定义类 class Ren//类名,首字母一般大写 { public $Name; //成员变量 protected $age; private $height; var $sex; //没有访问修饰符在前面加var,默认为public function __construct($a) //构造函数,函数名固定不可更改 { $this->sex=$a; } function __destruct() //析构函数,对象销毁时自动执行,函数名固定不能更改 { echo "该对象销毁了"; } function Run() //成员方法 { echo "这个人正在奔跑<br>"; } function Say() { echo $this->Name."正在说话"; //$this引用类里面的数据,$this哪个对象调用代表哪个对象 } } //使用类 $a=new ren("男"); //初始化对象 $a->Name = "张三"; //给对象成员变量赋值 var_dump($a); //输出对象的全部信息 $a->run(); //调用成员方法 //this引用 $a->Say(); echo"<br>"; //构造函数 echo $a->sex;
封装 面向对象的三大特性(封装,继承,多态)之一
//封装 目的,让类更加安全,不让外界直接访问。 先把成员变量变为私有,用各种方法来实现对成员变量的间接操作。 class Ren { private $name; private $age; private $height; private $sex; function setage($a) //赋值类私有变量的函数 { if($a>=10&&$a<=50) $this->age=$a; } function getage() //返回类私有变量的函数 { return $this->age; } function __set($name,$value) //对类里面的私有变量进行赋值的魔术方法,函数名不能更改 { if($name=="age") { if($value>20&&$value<100) $this->$name = $value; } else $this->$name = $value; } function __get($name) //对类里面的私有变量获取返回的魔术方法,函数名不能更改 { return $this->$name; } } $a=new Ren; $a->setage(50); echo $a->getage(); $a->name = "张三"; $a->age = "40"; //执行该语句会自动调用__set()方法 $a->sex = ‘男‘; var_dump($a); echo "<br>"; echo $a->name; //执行该语句会自动调用__get()方法
标签:
原文地址:http://www.cnblogs.com/lovling/p/5433975.html