PHP语言 -- 面向对象
1.定义类
class Ren { public $name; //定义成员变量 var $sex; function Say() //定义方法 { echo "这个人在讲话"; } }
2.实例化
$ren = new Ren(); //实例化 $ren->name="张三"; //调用成员 变量 $ren->sex="女"; $ren->Say();//调用方法
3.this引用
class Ren { public $name; public $sex; public function Say() { echo $this->name."这个人在说话"; //this 代表对象 不是类 } } $ren= new Ren(); $ren->name="张三"; $ren->Say();
4.构造函数
class Ren { public $name; public $sex; function __construct($name,$sex) //构造函数 { $this->name=$name; $this->sex = $sex; } } $ren = new Ren("李四","男");
5.析构函数
function __destruct() //销毁对象 施放内存,关闭连接等 自动执行 { echo "该对象马上要销毁了"; }
6.封装
class Ren { private $name; //将成员变量 私有 private $sex; private $age; //封装:访问成员变量的方法 public function SetAge($age) { if($age > 18 && $age <80) { $this->age = $age; } } //封装:简便方法赋值 ,自动调用 public function __set($name,$value) { if($name=="age") { if($value>18 && $value <80) { $this->$name = $value; } } else { $this->$name = $value; } } //封装:简便方法获取值 public function __get($name) { return $this->name; } } $ren = new Ren("李四","男") $ren->name = "什么"; echo $ren->sex;
7.继承
class Student extends Ren { //父类方法重写 function Say() { parent::Say(); //调用父类方法 echo "这是子类的方法"; } }
8.关键字
final 用来修饰类 ,如果把一个类定义成final类,该类就无法被继承了
final class Ren { }
static 静态的
class Student { static public $class;//定义静态变量 static function Say() //定义静态方法 { echo "aaaa"; } } Student::$class = "hello";//调用静态变量 echo Student::$class Student::$class;//调用静态方法
const 在类里定义常量
const ss=3.14; //定义常量
echo Studen::ss
9.多态
1).必须要发生在继承下
2).子类对父类的方法进行重写
3).在PHP中多态表现的不明显
10.tostring()方法,系统自带,用处不是很大,在输出对象时,返回对象的信息
function __tostring()
{
return "这是个类";
}
10.克隆对象 关键字:clone
$ren = new Ren(); $r1 = clone $ren;
function __clone() { $this->age=18; //$this 找的是副本 }
11.加载类
include("文件路径"); require_once("文件路径"); include "文件路径"; require_once "文件路径";