PHP面向对象知识总结
2016-07-08 21:37
597 查看
什么是面向对象?
概念:认识或认知事物的一种方式====》类比;
对象是类进行实例化后的结果
Object====》物质、物体
类====》属性和行为
(默认情况下的是缺少了该属性或行为则类别就无法确定)
扩展的附加行为====》接口
this / parent(后面跟预作用符) / self(自身的意思,调用类自身,常量,与this相对立的)
一、面向对象的三大特征
1.封装:(所有函数和类都是封装)
封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐藏对象的内部细节。
优点: 信息隐蔽,封装即隐藏(目的:不能让别人随意修改信息)。
怎么实现封装?
(1.访问修饰符(public、protected、private)
(2.类
(3.函数方法
(4.文件
(5.文件夹
2.继承:传承
继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而private修饰的则不能继承
关键字: extends
PHP中继承是单继承,即extends后面只能有1个类名;但是1个类可以有无数个子类
子类和父类只能出现在有继承关系的2个类之间
parent指代的是调用的父类的函数方法
被final修饰的类不能被继承
访问修饰符:
public 公共的 谁都可以用,也可以修改
protected 受保护的 只有自己和后代可以使用和修改
private 私有的 只有自己可以使用和修改
3.多态:变态--变化的形态
(4.抽象)
二、
OOA:分析
OOD: 设计
OOP:编程
三、重写
在子类中出现和父类同名的方法,这个称为重写
行为的重新定义
重写只能发生在有继承关系的类之间,方法名称相同即重写,与参数没有关系
重写时,访问修饰符的可以访问的范围不能低于父类中的访问修饰符
对于private修饰的方法不能重写
四、接口(接口插件 [ 提供行为的规范 ] )
接口( interface )是 抽象方法 和 静态常量 定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
在接口中的抽象方法只能是public的,默认也是public权限。并且不能设置成private或者protected 类型。
名称是interface,在接口定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量;
接口采用插件式配置,可以任意的匹配给任意一个类;类可以实现(implements)接口,类实现的接口可以有无数个;
当一个类实现了接口之后,该接口的所有的方法必须在该类中实现;
五、
输出当前文件路径
echo __FILE__;
echo __DIR__;
echo strlen(__DIR__);
获取当前文件名
echo substr(__FILE__,strlen(__DIR__)+1);
六、关键字 final(最终的)和 static(静态的)
final:
关键字,意思是终态的,最后的
它可以修饰 函数方法(行为) ,被修饰的函数方法(行为)不能被重写
final可以修饰 类class,但是被修饰的类不能被继承
类当中的属性不能被final修饰
static:
关键字,意思是静态的
它可以修饰 属性变量 ,也可以修饰 函数方法(行为)
静态资源加载和普通的非静态的资源加载是不一样的
在非静态方法中可以调用静态方法,但是反过来就不行
静态static修饰的内容被创建不需要有对象存在,同时它们是被放置在静态区当中
静态资源的标准访问方式是====> 类名::静态资源名称
七、函数方法 method_exists()和call_user_func()
method_exists():检查类的方法是否存在于指定的 object中;
call_user_func():把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数
八、include()和require()引入文件
include():如果没有对应文件,只会发出错误警告而后面的代码会继续执行;
require():如果没有对应的文件,会发出错误警告,后面的代码不会被执行;
九、魔术方法:
什么是魔术方法? : 所有以 __(两个下划线)开头的类方法保留为魔术方法;
魔术方法有(15个):
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(),
__toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 。
分别:
get():
set():受保护的
十、其他
property_exists — 检查对象或类是否具有该属性(某个类中是否包含某个属性名称);
十一、
函数方法的访问:__call() 和 __callStatic();
调用静态方法 forward_static_call()
十二、
serialize — 产生一个可存储的值的表示;
__sleep() 方法常用于提交未提交的数据,或类似的清理操作;
__invoke() 当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用;
__set_state()调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
__clone()克隆对象
__isset()检测一个对象的属性是否存在时被调用
__unset() unset一个对象的属性时被调用
__autoload()实例化一个对象时,如果对应的类不存在,则该方法被调用
__debugInfo()
十三、异常信息处理
用@屏蔽掉;
error_reporting函数和配置;
display errors 设置为 off
异常(Exception)即错误;
分为两大类:编辑时异常、运行时异常;
十四、复习回忆php操作数据库
php操作mysql数据库的步骤:
mysql_connect() 建立数据库连接
mysql_select_db() 选择操作的数据库
mysql_query() 执行SQL语句
mysql_fetch_array() 返回一行记录(数组)
mysql_num_rows() 返回结果集中行的数目
mysql_close() 关闭数据库
创建数据库连接的函数?参数有几个?每个参数代表什么含义?
mysql_connect() 建立数据库连接
参数共计5个:
第一个参数:服务器名称或者地址,同时可以加上端口号(如果是默认的3306,则可以省略);
第二个参数:登录的用户名;
第三个参数:登录密码;
第四个参数:是否使用可能重名的相同连接对象(如果该对象已经创建),默认为false;
第五个参数:常量组合,设置连接的模式,默认值为0;
(连接成功,返回结果为资源类型;如果失败,报错并且返回false)
十五、PDO
PDO====》php data object(php数据对象)
PDO类
PDOStatement 类
new PDO(‘数据库连接访问字符串’,‘登录用户名’,‘登录的密码’,‘访问的相关参数’)
mysql:databasename=test;port=3306;host=localhost;charset=utf8
exec($sql) ===> int类型
query($sql) ===> PDOStatement对象
prepare($sql) ===> PDOStatement对象
fetch 默认返回数组
fetchAll 返回二维数组
fetchObject 返回对象
execute — 执行一条预处理语句(参数是数组形)
什么是PDO:接口 一套访问数据库的标准
PDO(工具类,产生对象):php数据对象(PDO),扩展为php访问数据库定义了一个轻量级的一致接口。
可以执行SQL语句
执行sql语句的方法:
$pdo->exec(); //执行一条sql语句,update,delete,insert等写操作,返回受影响的行,。
$pdo->query(); //执行有结果集的语句,select等读操作,返回一个PDOStatement对象。
$pdo->prepare(); //执行所有语句,与PDOStatement对象一起使用,返回一个PDOStatement对象(减少服务器端执行的时间)。
PDOStatement类:代表一条预处理语句,并在该语句被执行后代表一个相关的结果集
PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(二维数组) //获取所有记录
fetchAll — 返回一个包含结果集中所有行的数组(二维数组) //获取所有记录
fetchObject():获取下一行并作为一个对象返回
什么是面向对象?
概念:认识或认知事物的一种方式====》类比;
对象是类进行实例化后的结果
Object====》物质、物体
类====》属性和行为
(默认情况下的是缺少了该属性或行为则类别就无法确定)
扩展的附加行为====》接口
this / parent(后面跟预作用符) / self(自身的意思,调用类自身,常量,与this相对立的)
一、面向对象的三大特征
1.封装:(所有函数和类都是封装)
封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐藏对象的内部细节。
优点: 信息隐蔽,封装即隐藏(目的:不能让别人随意修改信息)。
怎么实现封装?
(1.访问修饰符(public、protected、private)
(2.类
(3.函数方法
(4.文件
(5.文件夹
2.继承:传承
继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而private修饰的则不能继承
关键字: extends
PHP中继承是单继承,即extends后面只能有1个类名;但是1个类可以有无数个子类
子类和父类只能出现在有继承关系的2个类之间
parent指代的是调用的父类的函数方法
被final修饰的类不能被继承
访问修饰符:
public 公共的 谁都可以用,也可以修改
protected 受保护的 只有自己和后代可以使用和修改
private 私有的 只有自己可以使用和修改
3.多态:变态--变化的形态
(4.抽象)
二、
OOA:分析
OOD: 设计
OOP:编程
三、重写
在子类中出现和父类同名的方法,这个称为重写
行为的重新定义
重写只能发生在有继承关系的类之间,方法名称相同即重写,与参数没有关系
重写时,访问修饰符的可以访问的范围不能低于父类中的访问修饰符
对于private修饰的方法不能重写
四、接口(接口插件 [ 提供行为的规范 ] )
接口( interface )是 抽象方法 和 静态常量 定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
在接口中的抽象方法只能是public的,默认也是public权限。并且不能设置成private或者protected 类型。
名称是interface,在接口定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量;
接口采用插件式配置,可以任意的匹配给任意一个类;类可以实现(implements)接口,类实现的接口可以有无数个;
当一个类实现了接口之后,该接口的所有的方法必须在该类中实现;
五、
输出当前文件路径
echo __FILE__;
echo __DIR__;
echo strlen(__DIR__);
获取当前文件名
echo substr(__FILE__,strlen(__DIR__)+1);
六、关键字 final(最终的)和 static(静态的)
final:
关键字,意思是终态的,最后的
它可以修饰 函数方法(行为) ,被修饰的函数方法(行为)不能被重写
final可以修饰 类class,但是被修饰的类不能被继承
类当中的属性不能被final修饰
static:
关键字,意思是静态的
它可以修饰 属性变量 ,也可以修饰 函数方法(行为)
静态资源加载和普通的非静态的资源加载是不一样的
在非静态方法中可以调用静态方法,但是反过来就不行
静态static修饰的内容被创建不需要有对象存在,同时它们是被放置在静态区当中
静态资源的标准访问方式是====> 类名::静态资源名称
七、函数方法 method_exists()和call_user_func()
method_exists():检查类的方法是否存在于指定的 object中;
call_user_func():把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数
八、include()和require()引入文件
include():如果没有对应文件,只会发出错误警告而后面的代码会继续执行;
require():如果没有对应的文件,会发出错误警告,后面的代码不会被执行;
九、魔术方法:
什么是魔术方法? : 所有以 __(两个下划线)开头的类方法保留为魔术方法;
魔术方法有(15个):
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(),
__toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 。
分别:
get():
set():受保护的
十、其他
property_exists — 检查对象或类是否具有该属性(某个类中是否包含某个属性名称);
十一、
函数方法的访问:__call() 和 __callStatic();
调用静态方法 forward_static_call()
十二、
serialize — 产生一个可存储的值的表示;
__sleep() 方法常用于提交未提交的数据,或类似的清理操作;
__invoke() 当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用;
__set_state()调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
__clone()克隆对象
__isset()检测一个对象的属性是否存在时被调用
__unset() unset一个对象的属性时被调用
__autoload()实例化一个对象时,如果对应的类不存在,则该方法被调用
__debugInfo()
十三、异常信息处理
用@屏蔽掉;
error_reporting函数和配置;
display errors 设置为 off
异常(Exception)即错误;
分为两大类:编辑时异常、运行时异常;
十四、复习回忆php操作数据库
php操作mysql数据库的步骤:
mysql_connect() 建立数据库连接
mysql_select_db() 选择操作的数据库
mysql_query() 执行SQL语句
mysql_fetch_array() 返回一行记录(数组)
mysql_num_rows() 返回结果集中行的数目
mysql_close() 关闭数据库
创建数据库连接的函数?参数有几个?每个参数代表什么含义?
mysql_connect() 建立数据库连接
参数共计5个:
第一个参数:服务器名称或者地址,同时可以加上端口号(如果是默认的3306,则可以省略);
第二个参数:登录的用户名;
第三个参数:登录密码;
第四个参数:是否使用可能重名的相同连接对象(如果该对象已经创建),默认为false;
第五个参数:常量组合,设置连接的模式,默认值为0;
(连接成功,返回结果为资源类型;如果失败,报错并且返回false)
十五、PDO
PDO====》php data object(php数据对象)
PDO类
PDOStatement 类
new PDO(‘数据库连接访问字符串’,‘登录用户名’,‘登录的密码’,‘访问的相关参数’)
mysql:databasename=test;port=3306;host=localhost;charset=utf8
exec($sql) ===> int类型
query($sql) ===> PDOStatement对象
prepare($sql) ===> PDOStatement对象
fetch 默认返回数组
fetchAll 返回二维数组
fetchObject 返回对象
execute — 执行一条预处理语句(参数是数组形)
什么是PDO:接口 一套访问数据库的标准
PDO(工具类,产生对象):php数据对象(PDO),扩展为php访问数据库定义了一个轻量级的一致接口。
可以执行SQL语句
执行sql语句的方法:
$pdo->exec(); //执行一条sql语句,update,delete,insert等写操作,返回受影响的行,。
$pdo->query(); //执行有结果集的语句,select等读操作,返回一个PDOStatement对象。
$pdo->prepare(); //执行所有语句,与PDOStatement对象一起使用,返回一个PDOStatement对象(减少服务器端执行的时间)。
PDOStatement类:代表一条预处理语句,并在该语句被执行后代表一个相关的结果集
PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(二维数组) //获取所有记录
fetchAll — 返回一个包含结果集中所有行的数组(二维数组) //获取所有记录
fetchObject():获取下一行并作为一个对象返回
相关文章推荐
- H264 RTP封包原理(转载)
- 切莫让CDN缓存你的动态文件
- php中将12567890装化为1,234,567,890
- 将一个字符串(1234567890)转换成(1,234,567,890)每三个一组用逗号隔开
- 写一个方法,将一个字符串(1234567890)转换成(1,234,567,890)每三个一组用逗号隔开()
- laravel中邮件的发送以及model的使用
- Yii 2 load() 和 save()
- 6步实现laravel图片上传
- php+jq(plupload插件)+ajax多图上传并入库
- 5 个 Laravel Eloquent 小技巧
- InputStreamReader和OutputStreamWriter的用法
- PHP报错“Parse error: syntax error, unexpected T_VARIABLE”的解决办法
- PHP之双向链表(SplDoublyLinkedList)简介
- 配置云服务器 FTP 服务
- Snoopy.class.php
- 我的第一个thinkphp
- php 学习之对象
- laravel的模板中修改编辑的view表单form需要注意的问题
- php三元运算符?:的简写形式
- $_POST传值定义的变量在直接加载这个php文件的时候会报错的问题解决方法