Blogger Information
Blog 77
fans 0
comment 0
visits 55573
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
命名空间、USE在命名空间中的使用、实操MySQL:DDL、DQL、DML、DCL
Jet的博客
Original
280 people have browsed it

一、命名空间

1、命名空间的定义:

a. php命名空间只会对类、接口、函数、常量产生影响;
b. 命名空间是解决全局成员的命名冲突
c. 声明命名空间的关键字:namespace
d. 声明命名空间,需在第一行

代码演示1:

  1. namespace ns1;
  2. class Demo1{}
  3. class Demo1{}
  4. function Demo1(){}
  5. namespace ns2;
  6. class Demo1{}
  7. // 解决命名冲突问题


代码演示2:

  1. namespace ns1;
  2. class Demo1{
  3. public static function show() {
  4. return __METHOD__;
  5. }
  6. }
  7. namespace ns2;
  8. class Demo2{
  9. public static function hello() {
  10. return __METHOD__; //类文法的名称
  11. }
  12. public static function line() {
  13. return __LINE__;
  14. }
  15. public static function file() {
  16. return __FILE__;
  17. }
  18. }
  19. // 类的完全限定名称 应该包含空间名
  20. echo Demo2::hello() . "<br />"; //类限定的名称
  21. echo Demo2::line() . "<br />"; //代码在哪一行
  22. echo Demo2::file() . "<br />"; //绝对路径+文件名称
  23. // 默认在本空间下解析demo2类
  24. $total = Demo2::class;
  25. echo $total . "<br />";
  26. echo __NAMESPACE__ . "<br />";
  27. // 回调 call_user_func,需要使用类的限定名称调用
  28. echo call_user_func([$total, 'hello']) . "<br />";
  29. echo call_user_func(['\ns2\Demo2', 'hello']); //找不到此类
  30. // call_user_func_array();
  31. // 回调 突然跳出主程序去执行事先预设好的(未知的)程序



二、USE在命名空间中的使用

概念:

  1. use:引入另外一个空间中的类
  2. include enquire是引入文件
  3. use不等于reuqire或者includeUSE前提是已经把文件引入至当前文件

login.php文件

  1. <?php
  2. namespace app\controller;
  3. class Login{
  4. function login(){
  5. return __METHOD__ . "<br />";
  6. }
  7. }

autoload.php文件

  1. <?php
  2. spl_autoload_register(function($className)
  3. {
  4. echo $className . "<br />";
  5. // 将命名空间分隔符替换成操作系统目录分隔符 为了解决linux系统下,引入带有命名空间的类文件,路径失效的问题
  6. $file = str_replace("\\", DIRECTORY_SEPARATOR, $className) . '.php';
  7. //echo $file;
  8. if (is_file($file) && file_exists($file))
  9. require $file;
  10. });

demo1.php运行文件

  1. <?php
  2. // 使用use 引入另外一个空间的类
  3. namespace demo;
  4. // 引入类的自动加载器
  5. require __DIR__ . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR. 'autoload.php';
  6. // ! use引入另外一个空间到当前控件,as是给该空间起别名,当前的别名与类目一致时,可省略
  7. use app\controller\Login;
  8. use app\controller;
  9. //use app\controller as controller;
  10. echo (new controller\Login)->login();

代码截图:


运行结果:


小结:

1、由此可见,use之前需要使用require引入自动加载类(atutoload.php)文件;
2、通过自动加载器,demo.php通过自动加载器加载Login.php文件的login方法
3、use引入另外一个空间到当前空间,as是给该空间起别名,当前别名与类目录一致时,可以省略



三、MySQL的操作类型

1、MySQL

  • MySQL: 关系型数据库管理系统
  • MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言

2、操作类型:DDL、DQL、DML、DCL

  • DDL: 数据定义语言(Data Definition Language)
    登录:mysql -u root -p
    查询 show databases;
    选择数据表 use 数据库名;
  • DQL: 数据查询语言(Data Query Language)
  • DML: 数据操作语言(Data Manipulation Language)
  • DCL: 数据控制语言(Data Control Language)

DDL、DQL、DML操作

  • 登录:mysql -u root -p


  • 查询:show databases;


  • 选择数据表:use 数据库名


  • 查询表结构:desc users;


  • 查询表数据:select * from users;


DCL操作

  • 1.查看用户权限:show grants for ‘’@地址;


  • 2.创建用户:CREATE USER ‘用户名’@地址 IDENTIFIED BY ‘密码’;


  • 3.给用户授权:GRANT 权限1, … , 权限n ON 数据库.* TO ‘用户名’@地址;
  1. GRANT ALL ON shop.* TO 'JET01'@localhost;


  • 4.撤销授权:GRANT ALL ON 数据库.* FROM JET01@LOCALHOST;
  1. GRANT ALL ON shop.* TO JET01@LOCALHOST;


  • 5.删除用户:DROP USER ‘用户名’@地址;
  1. DROP USER 'JET01'@LOCALHOST;


常用操作(CURD)

  • 1.创建(Create):INSERT
  • 2.更新(Update):UPDATE
  • 3.删除(Delete):DELETE
  • 4.读取(Read):SELECT

  • 1.INSERT:INSERT INTO 数据表(字段列表) VALUES(字段值列表);
  1. insert into users(username,password,phone,add_time,pv) values('book',123,10086,NOW(),2);


  • 2.UPDATE:update 数据表 set 字段=值,… where 条件
  1. update users set username='winwin' where uid=21;


  • 3.DELETE: delete 数据表 where 条件
  1. delete from users where uid=18;


  • 4.SELECT:select 字段列表 from 数据表 where 条件
  1. select username from users where uid;

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post