1 命名空间
- 概念:命名空间是一种封装事物的方法,例如:类,方法,函数等。
- 作用:用来解决类名或应用程序名冲突问题
- 举例:项目中会用到第三方类,第三方类加载进来后,可能与项目中的类名冲突
1.1定义命名空间的要求
- 使用namespace关键字,来声明一个命名空间;
- 所有的代码都可以存在于命名空间中,但只有三种代码会受影响:常量(const)、函数、类;
- 除了以上三种外,其他代码可以写在空间中,但不受空间影响,相当于全局代码,可以在任何地方使用
- 全局代码所在的空间称为:根空间、全局空间
- 声明命名空间的语句,必须是PHP脚本的第一行代码:空格、空行都不行;
1.2 定义子命名空间
- 文件夹可以有子目录,命名空间也有子空间
- 目录的分隔符号正斜杠(/),空间路径的分隔符号是反斜杠(\)
- 举例:namepspace Father / child / grandchildren;
1.3 同一个文件定义多个命名空间
1.3.1 简单组合
- 不建议同一个文件定义多个空间
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116165309250.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pfcGhvbmU=,size_16,color_FFFFFF,t_70)
1.3.2 大括号语法
1.3.3 不包含在命名空间中的代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116165623416.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pfcGhvbmU=,size_16,color_FFFFFF,t_70)
1.4 访问命名空间中元素的方式
1.5 namespace关键字与魔术常量__NAMESPACE__
1.5.1 namespace关键字
- 声明空间关键字
- 可以用来直接代替当前空间名,相当于self关键字
1.5.2 魔术常量__NAMESPACE__
1.6 命名空间的别名/导入
1.7 命名空间在项目中的使用
spl_autoload_register(function($className){
$fileName="./".str_replace('\\','/',$className).".class.php";
if(file_exists($fileName))
require_once ($fileName);
});
$arr=array(
'db_host'=>'localhost',
'db_user'=>'root',
'db_pass'=>'',
'db_name'=>'newdb3',
'charset'=>'utf8'
);
$db=\Libs\Frame\Db::getInstance($arr);
var_dump($db);
2 PDO
2.1什么是PDO
- PDO就是PHP Data Object的简称
- PDO主要用来代替数据库操作类
- PDO就是一个系统类
- PDO拓展为PHP访问数据库定义了一个轻量级的、一致性的接口,无论使用什么类型数据库,都可以通过一致的函数(方法)来执行查询和获取数据
- PDO是一个数据库访问抽象层,作用是统一各种数据的访问接口,不需封装数据库从操作类,只需使用PDO的方法就可以对各种数据库进行操作。在选择不同数据库时,只需修改PDO的DSN即可
2.2 PDO访问流程
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116211037844.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pfcGhvbmU=,size_16,color_FFFFFF,t_70)
2.3 PDO连接MySQL
- 创建一个表示数据库连接的PDO对象
- PDO::__construct(string $dsn [,string $username [,string $password ] ] )<