php 封装
复习一下之前说的php的其他知识
类
由众多对象抽象出来的
对象
由类实例化出来的 (所有的东西都可以把它看做成对象)
(类是不能直接用的,关键字new,可以造一个新对象来提取类中的功能)
成员变量
成员方法(成员函数)
成员属性
访问修饰符(成员的前面可以加,来决定成员的权限)
public 公有的
protected 受保护的(只能在该类或该类子类可以访问)
private 私有的(只能在该类,花括号内可以访问)
构造函数(对类里面某个成员可以进行初始化)
1.写法特殊
2.执行时间特殊
面向对象的三大特性:
1、封装
2、继承
3、多态
封装:
目的:为了使一个类更加安全
做法:1、将成员变量变为私有的
2、在类里面做方法来间接访问成员变量
3、在方法里面加控制
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <?php class Ren { public $code; //人员代号 private $name; //人员名称 private $sex; //人员性别 private $age; //人员年龄,必须在18-50周岁之间 //构造方法,用来初始化性别 function __construct($s) { $this->sex = $s; } /*//造一个修改年龄的方法 function SetAge($a) { //加控制 if($a>18 && $a<50) { $this->age = $a; } } //造一个获取age值的方法 function GetAge() { return $this->age; }*/ //给变量赋值的魔术方法 function __set($n,$v) { if($n=="age") { if($v>18 && $v<50) { $this->$n = $v; } } else { $this->$n = $v; } } //__get魔术方法,用来取变量值的 function __get($n) { return $this->$n; } } //造对象 $r = new Ren("男"); //$r->SetAge(30); //$r->__set("age",30); $r->age = 30; //自动调用__set()方法,将变量名当做第一个参数,将等号右边的值当做第二个参数 $r->name = "张三"; //echo $r->sex; //自动调用__get()方法,将变量名当做参数 //var_dump($r); class Dog { private $name; function Jiao() { echo $this->name."在叫"; } function SetName($n) { $this->name = $n; return $this; } } $d = new Dog(); $d->SetName("旺财")->Jiao(); ?> </body> </html>