您的位置:首页 > 编程语言 > PHP开发

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():获取下一行并作为一个对象返回
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: