php7.10

来源:互联网 发布:淘宝网伴娘礼服 编辑:程序博客网 时间:2024/04/18 09:53

一.魔术方法

像__construct(), __clone()方法一样,在特定时刻自动被调用的方法,用于完成某个特定功能的方法,称之为魔术方法,例如:
__construct()
实例化new,初始化对象
__destruct()
对象被销毁,收尾工作
__clone()
克隆clone,重设新对象
__toString()对象转换字符串调用
__invoke()匿名函数:对象当函数调用,只有重写了__invoke()才能对象当成函数调用。
等。。。

二.php的重载(重新加载)

不同于其他语言的重载,这里指的是:php允许对对象的不可访问的成员行处理,这种处理就是重载。不可访问指的是:不存在和访问限制。
1.属性重载
例如对对想进行增加,修改属性时会调用__set()魔术方法.
进行访问属性会调用__get()魔术方法。以及判断属性是否存在和删除属性分别会调用__isset()和__unset()魔术方法。
2.方法重载
同样是访问一个不访问的方法是调用__call()以及静态方法被重载触发的__callStatic().
如代码

Class student{    private $age;    private $name;    private $sex;    public function __set($name,$value){        $allow_set = array('age','name');        if(in_array($name, $allow_set)){            $this->$name = $value;        }else{            echo "该属性".$name."你没有权限操作";        }    }    public function __get($name){        $allow_set = array('age','sex');        if(in_array($name, $allow_set)){            return $this->$name;        }    }    public function __isset($name){        $allow_set = array('age','sex');        if(in_array($name, $allow_set)){            return true;        }        else return false;    }    public function __unset($name){        $allow_set = array('age');        if(in_array($name, $allow_set)){            unset($this->$name);        }    }}

三、遍历对象

foreach(),以及自定义迭代器,需要类实现Iterator接口,分别rewind()初始化,valid()判断是否合法,current()获得键,key()获得值,next()指针移动。同样遍历对象操作也要注意访问限定符。

四、序列化与反序列化

File_put_contents(‘./data’,$ser_data)写入文件
File_get_contents(‘./data’)读取文件
数据保存需要保存数据的类型以及值,可以使用序列化serialize(),访问时使用反序列化unserialize(),所有的数据类型都可以序列化和反序列化,但是资源类型语法上可以但是得不到正确结果。
反序列化是需要导入对象的定义,不然所得对象会是__PHP_Incomplete_Class对象。
1.__sleep()魔术方法对象再被序列化时可以决定那些属性被序列化而那些不被
2.__wakeup()魔术方法 在反序列化时可以对属性进行重新初始化

五、魔术常量以及相关函数

CLASS 类名,所在类名
METHOD 方法名,所在方法名
FUNCTION 函数名
Class_exists()类是否存在
Interface_exists()接口是否存在
Method_exists()方法是否成
Property_exists()属性是否存在
get_class_vars();得到类的所有成员变量(属性)
get_class_methods();得到类的所用成员方法
Get_class()得到对象的所属类
Get_called_class();得到当前的调用类名

面向对象思想三大特征

1.封装
2.继承
3.多态

0 0
原创粉丝点击