面向对象知识:
1 你对面向对象的认识
2 什么是类?什么是对象?类和对象之间的关系?
类:类是具有相同属性和行为的一组对象的集合
对象:对象是实际存在的该类事物的每个个体,因而也称实例
类和对象的关系:类是对象的抽象,对象是类的实例
3 面向对象的3大特征
继承,封装,多态
4 怎么创建一个类的对象?
使用 new 这个关键字创建对象
5 什么是构造方法(函数)?怎么定义?有什么样的特点?
构造方法(在OO中,函数被称为方法)
1 特殊的名称:__construct
2 在实例化对象时,自动被调用
3 在内存中划分了对应的内存空间区域
4 构造方法可以像普通方法一样,接收参数;这里的参数通常是用来初始化类中的属性的
5 构造方法不能重复定义,每个类当中有且只能有一个;如果不写相当于有一个默认的不带参数且没有任何执行语句的空函数
6 什么是析构方法(函数)?怎么定义?有什么特点?
析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。
__destruct() 析构函数,是在垃圾对象被回收时执行。
析构函数也可以被显式调用,但不要这样去做。
析构函数是由系统自动调用的,不要在程序中调用一个对象的虚构函数。
析构函数不能带有参数。
7 什么是封装?有什么作用?列举一些封装的实例
封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐藏对象的内部细节。
优点: 信息隐蔽,封装即隐藏(目的:不能让别人随意修改信息)。
怎么实现封装?
(1.访问修饰符(public、protected、private)
(2.类
(3.函数方法
(4.文件
(5.文件夹
8 访问修饰符有哪3个?分别有什么作用、特点 public 公共的 谁都可以用,也可以修改
protected 受保护的 只有自己和后代可以使用和修改
private 私有的 只有自己可以使用和修改
9 什么是继承?关键字是什么?有什么作用?
继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而private修饰的则不能继承
关键字: extends
10 什么是多态?
变态--变化的形态
11 关键字this,super各自什么用途?有什么区别?
$this就是对象内部代表这个对象的引用
12 static的作用?用static修饰的如何访问 static:
关键字,意思是静态的
它可以修饰 属性变量 ,也可以修饰 函数方法(行为)
静态资源加载和普通的非静态的资源加载是不一样的
在非静态方法中可以调用静态方法,但是反过来就不行
静态static修饰的内容被创建不需要有对象存在,同时它们是被放置在静态区当中 静态资源的标准访问方式是====> 类名::静态资源名称
13 parent的用法
parent指代的是调用的父类的函数方法
14 什么叫重载?
在子类中出现和父类同名的方法,这个称为重写
行为的重新定义
重写只能发生在有继承关系的类之间,方法名称相同即重写,与参数没有关系 重写时,访问修饰符的可以访问的范围不能低于父类中的访问修饰符
对于private修饰的方法不能重写
15 final关键字的作用和用法
final:
关键字,意思是终态的,最后的
它可以修饰 函数方法(行为) ,被修饰的函数方法(行为)不能被重写 final可以修饰 类class,但是被修饰的类不能被继承
类当中的属性不能被final修饰
16 什么叫抽象?抽象方法和抽象类
抽象:抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字。
抽象方法:在类里面定义的没有方法体的方法就是抽象方法,所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰;
抽象类:只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类,抽象类不能产生实例对象,在抽象类里面可以有不是抽象的方法和成员属性,但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用”abstract”来修饰
17 什么叫接口?关键字是什么?有什么特点?
接口( interface )是 抽象方法 和 静态常量 定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
在接口中的抽象方法只能是public的,默认也是public权限。并且不能设置成private或者protected 类型。
名称是interface,在接口定义的只能是公共的抽象方法(没有函数体部分),也可以有静态常量;
接口采用插件式配置,可以任意的匹配给任意一个类;类可以实现(implements)接口,类实现的接口可以有无数个;
当一个类实现了接口之后,该接口的所有的方法必须在该类中实现
关键字:interface
特点: 1实现多个接口时,接口中的方法不能有重名。 2接口也可以继承,通过使用 extends 操作符。
3类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则
会导致致命错误。
4接口中定义的所有方法都必须是公有
18 魔术方法是什么?大概有哪些?
所有以 __(两个下划线)开头的类方法保留为魔术方法;
魔术方法有(15个):
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 。
19 如何访问和设置类中的私有属性?
20 列举常见的魔术方法及其用途?至少4个
__get()方法用来获取私有属性
__set()方法用来设置私有属性
__isset()检测一个对象的属性是否存在时被调用
__clone()克隆对象
21 命名空间的作用及其用法
22 PDO是什么?
php data object(php数据对象),接口 一套访问数据库的标准
23 创建PDO对象,有几个参数,分别代表什么意思?
4个参数
new PDO(‘数据库连接访问字符串’,‘登录用户名’,‘登录的密码’,‘访问的相关参数’)
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1' ;
$user = 'dbuser' ;
$password = 'dbpass' ;
try {
$dbh = new PDO ( $dsn , $user , $password );
} catch ( PDOException $e ) {
echo 'Connection failed: ' . $e -> getMessage ();
}
?>
24 PDO对象要执行访问数据库的操作,有哪些方法?分别怎么使用?
PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object
PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组
PDOStatement::execute — 执行一条预处理语句
PDO::exec — 执行一条 SQL 语句,并返回受影响的行数
25 什么叫模板引擎?它有什么用途?
26 我们用的smarty模板最新版本是多少?怎么使用?