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.多态
- php7.10
- php7
- php7
- windows php7+nginx1.10 环境搭建
- ubuntu16.10 docker 配置ngixn + php7 + mysql
- PHP新版本10月出炉!跳过6直上PHP7?
- Ubuntu 14.04 安装配置MySQL5.7 PHP7.1 Nginx1.10
- Ubuntu16.04 LNMP (PHP7.0+Mysql5.7+Nginx1.10)
- 最新lnmp安装(nginx1.10,php7 ,mysql5.5)
- Windows 10下进行Apache24 php7 MySQL环境搭建
- 腾讯云CentOS7.2 配置PHP7 MySQL 5.7.10
- Ubuntu16.10下php7.0-fpm与Nginx配置
- 10件在PHP7中不要做的事情
- 安装PHP7
- centos php7
- php7安装
- 解决php7
- php7安装
- MySQL读书笔记-事务,隔离级别,死锁
- Java基础入门-关键字、数据类型相关知识
- poj 3974 manacher
- BZOJ 2440: [中山市选2011]完全平方数
- Redis安装步骤
- php7.10
- spring 注解
- 剑指offer--16.反转链表
- .net 服务器控件实现文件上传
- 开发工具:AS如何正确导入下载的开源项目
- uva 11181 DFS+概率计算
- 小谈网络游戏同步
- redhat/centos 搭建svn服务器环境
- GCD介绍