博主信息
博文 47
粉丝 3
评论 0
访问量 50679
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
命名空间类三种引用、类导入命名冲突解决、自动加载类、mysql操作
原创
1088人浏览过

1.空间引用类的三种方式

  1. // 父空间
  2. namespace test {
  3. class name
  4. {
  5. }
  6. // 1. 非限定名称:name,相当于当前路径
  7. // 类名前无空间前缀
  8. echo name::class,'<br>';
  9. // 2.限定名称:test2\name,相当于相对路径
  10. // 类名前存在非全局开始的空间前缀
  11. echo test2\name::class,'<br>';
  12. // 3.完全限定名称:\two\name, 相当于绝对路径
  13. // 类名前存在全局开始的空间前缀
  14. echo \two\name::class,'<br>';
  15. }
  16. // 子空间
  17. namespace test\test2 {
  18. class name
  19. {
  20. }
  21. }
  22. // 其他空间
  23. namespace two {
  24. class name
  25. {
  26. }
  27. }

2. 类的别名引入与命名冲突的解决方案

使用空间别名的原因:简化、重名

  • 文件:demo3.php
  1. namespace app\controller;
  2. // 引入类文件
  3. require 'demo3-1.php';
  4. // 使用完全限定名称
  5. $user = new \app\admin\models\SalaryModel;
  6. var_dump($user);
  7. echo '<hr>';
  8. // 类名与当前空间的类重名了,就不能与原始类名相同,所以就必须写别名
  9. use app\admin\models\SalaryModel as Salary;
  10. // 别名访问
  11. $user = new Salary;
  12. var_dump($user);
  13. echo '<hr>';
  14. // 当前空间重名类
  15. class SalaryModel
  16. {
  17. }
  18. $user = new SalaryModel;
  19. var_dump($user);
  • 引入文件:demo3-1.php
  1. namespace app\admin\models;
  2. class SalaryModel
  3. {
  4. }

3. 自动加载类

  • 自动加载器:loader.php
  1. spl_autoload_register(function($class){
  2. $file = str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php';
  3. require $file;
  4. });
  • 文件:demo5.php
  1. namespace app;
  2. use app\models\StaffsModel;
  3. use app\models\SalarysModel;
  4. // 引入自动加载器
  5. require 'app/loader.php';
  6. $Staffs = new StaffsModel;
  7. $Salarys = new SalarysModel;
  8. var_dump($Staffs,$Salarys);
  • app\models\StaffsModel.php
  1. namespace app\models;
  2. class StaffsModel
  3. {
  4. }
  • app\models\SalarysModel.php
  1. namespace app\models;
  2. class StaffsModel
  3. {
  4. }

4.mysql命令

  1. -- 创建数据表
  2. create database phpedu collate utf8mb4_unicode_ci;
  3. -- 选择默认数据库
  4. use phpedu;
  5. -- 删除数据表
  6. drop database user;
  7. -- 创建数据表users
  8. create table users (
  9. sid int unsigned auto_increment not null primary key,
  10. name varchar(20) not null comment '姓名',
  11. gender enum('male','female') not null comment '性别',
  12. email varchar(150) not null comment '邮箱',
  13. birthday date not null comment '生日',
  14. create_at timestamp not null default current_timestamp comment '创建日期',
  15. update_at timestamp not null default current_timestamp on update current_timestamp comment '更新日期'
  16. ) engine = innodb auto_increment = 1 collate = utf8mb4_unicode_ci;
  17. -- 增加字段
  18. alter table users add salary int unsigned not null default 2999 after gender;
  19. -- 更新字段定义
  20. alter table users change salary salary float unsigned not null default 3000 after gender;
  21. -- 删除字段
  22. alter table users drop test;
  23. -- 删除表
  24. drop table test;
  25. -- 插入 insert
  26. insert users (name,gender,salary,email,birthday)
  27. values ('joe','male',3999,'joe@qq.com','1988-09-02');
  28. -- 批量插入
  29. insert users (name,gender,salary,email,birthday) values
  30. ('hack','male',5566,'hack@qq.com','2000-02-23'),
  31. ('jack','male',4533,'jack@qq.com','1966-02-23'),
  32. ('mack','male',2566,'mack@qq.com','1997-02-23'),
  33. ('unik','male',6555,'unik@qq.com','1987-02-23'),
  34. ('ming','male',1999,'hack@qq.com','1990-02-23');
  35. -- 子查询式插入,复制插入
  36. insert users (name,gender,salary,email,birthday)
  37. (select name,gender,salary,email,birthday from users);
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学