1.__tostring() 能够直接输出对象
class Ren { public $name; function Run() { echo "跑"; } function __tostring() //加上这个方法就可以直接输出对象了 { return "name代表人员名称,跑是方法"; } } $r= new Ren(); echo $r;
2.__clone() 克隆函数:关键字是 clone
class Ren { public $name; function Run() { echo "跑"; } function __tostring() { return "name代表人员名称,跑是方法"; } //克隆对象时自动调用,对副本可以修改 function __clone() { $this->name="李四"; //this代表的是副本 that代表的是原本 } } $r=new Ren(); $r->name="张三"; var_dump($r); $r1=clone $r; //克隆 关键字 clone var_dump($r1);
3.加载类
类文件保存方式:类名.class.php
将外界的类文件拿过来用的方式就叫做加载类
引入方式:
include和require两中方式的区别:require出现问题后不会使程序崩溃
1. include("./文件名"); //类文件的文件路径 include ""; //直接写路径
2. require(""); //类文件的文件路径 require ""; //直接写路径
3. require_once(""); //类文件的文件路径:请求一次 require_once ""; //直接写路径
4.有很多类时,可以使用自动加载类 __autoload($classname)
注意:
a.所有的类文件都要在同一个文件夹下;
b.所有类文件的命名规则要一致;
c.类名和类文件名要保持一致
function __autoload($classname) //类名 { //加载类的代码 require $classname.".class.php"; require "./文件夹名/".$classname.".class.php"; }
//不仅可以引用php文件,其他的也可以
5.魔术方法总结
a.构造函数,对类里面成员进行初始化
function __construct() { }
b.析构函数,在对象释放的时候自动执行
function __destruct() { }
c.__set方法
function __set($name,$value) { }
d.__get方法
function __get($name) { }
e.__tostring()方法
function __tostring() { }
f.__clone方法
function __clone() { }
g.__autoload方法
function __autoload($classname) { }
6.关键字
(1)class 定义类
(2)访问修饰符 public protected private
(3)new 造对象的关键字
(4)$this 代表该对象本身
(5)extends 代表继承
(6)parent 代表父类
(7)static 代表静态
(8)self 代表该类
(9)abstract 代表抽象,定义抽象类
(10)interface 代表接口,用来定义接口
(11)implements 实现接口
(12)clone 代表克隆
(13)override 重写
(14)overload 重载
(15)oop 代表面向对象
(16)final 写在定义类前面的,将该类定义为最终类,则该类不能被继承