Blogger Information
Blog 45
fans 0
comment 0
visits 34584
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php类的引用与mysql基础
咸鱼老爷
Original
642 people have browsed it

类的引用方式

1、非限定名称:相当于当前路径,类名前无空间前缀;
2、限定名称:相当于相对路径,类名前存在非全句开始的空间前缀;
3、完全限定名称:相当于绝对路径,类名前存在全局开始的空间前缀;

  1. namespace ns1{
  2. class User
  3. {
  4. }
  5. //非限定名称
  6. echo User::class,'<br>';
  7. // 限定名称
  8. echo ns2\User::class,'<br>';
  9. // 完全限定名称
  10. echo \ns\User::class;
  11. }
  12. namespace ns1\ns2{
  13. class User
  14. {
  15. }
  16. }
  17. namespace ns{
  18. class User
  19. {
  20. }
  21. }

动态类/动态全局成员

动态类:类名在变量中

  1. namespace ns;
  2. class Test
  3. {
  4. const cn=__CLASS__;
  5. }
  6. // 赋值时必须使用完全限定名称
  7. $class='\ns\Test';
  8. echo $class::cn;

空间别名

使用别名的原因有:简化,重名

  1. namespace app\admin\controllers;
  2. require 'demo13.php';
  3. // 当前空间引用一个与自己完全无关的类,需要使用完全限定名称
  4. $obj=new \app\admin\models\UserModel();
  5. var_dump($obj);

使用use导入空间别名,来简化类名称,默认导入就是一个完全限定名称

  1. use \app\admin\models\UserModel as UserModel;
  2. $user=new UserModel();
  3. var_dump($user);

如果别名与原始的类目部分相同,别名可以不写

  1. use \app\admin\models\UserModel;
  2. $user=new UserModel();
  3. var_dump($user)

如果通过别名导入的类与当前空间的类重名,类别名不能与原始类名相同,别名必须写

  1. class UserModel
  2. {
  3. }
  4. use app\admin\models\UserModel as User;
  5. $user=new User;
  6. var_dump($user);
  7. $obj=new UserModel;
  8. var_dump($obj);

空间成员的访问优先级

全局成员:类,函数,常量
访问类,只在当前空间中查找,不会自动去全局找。
访问函数,如果当前空间不存在,会自动到全局找
访问常量,如果当前空间不存在,会自动到全局查询

实现一个自动加载类

将类空间名称与类文件所在的路径进行映射,实现自动加载
创建一个load.php文件

  1. <?php
  2. spl_autoload_register(function($class){
  3. // 将类前缀与类的路径进行映射
  4. // 1将空间分隔符转为路径分隔符,
  5. // 2加上扩展名'.php',加载进来
  6. $file=str_replace('\\',DIRECTORY_SEPARATOR,$class).'.php';
  7. require $file;
  8. });

客户端脚本

  1. namespace app;
  2. use \app\model\AdminModel;
  3. use \app\model\UserModel;
  4. // require 'app/model/AdminModel.php';
  5. // require 'app/model/UserModel.php';
  6. require 'app/load.php';
  7. $user=new UserModel();
  8. var_dump($user);
  9. $admin=new AdminModel();
  10. var_dump($admin);

mysql

mysql的连接与退出

mysql -h localhost -p 3306 -u 账号 -p密码 -d mysql
mysql -u root -p
mysql -u root 数据库名称 -p
quit 退出

数据库操作

  • 创建
    create database 数据库名称;
    create database 数据库名称 collate utf8mb4_unicode_ci;
    create database php;
  • 查看建库语句
    show create database php;
  • 选择
    use 数据库名称;
  • 删除
    drop database php;

    数据表操作

  • 创建表
    auto_increment 自增
    primeary key 主键
    comment 备注
    1. create table user(
    2. id int unsigned auto_increment not null primary key,
    3. name varchar(30) not null comment'姓名',
    4. gender enum('male','famale') not null comment'性别',
    5. email varchar(150) not null comment'邮箱',
    6. borthday date not null comment'生日',
    7. create_time timestamp not null default current_timestamp comment'创建日期',
    8. update_time timestamp not null default current_timestamp on update current_timestamp comment'更新日期'
    9. ) engine=innodb;
  • 查看建表语句
    show create table user;
  • 查看表结构
    desc 表名;
  • 查看有多少表
    show tables;
  • 删除表
    drop table test;
  • 修改表
    增加字段
    alter table user add cname varchar(50) not null default '' after gender;

    更新字段
    alter table user change cname ename char(16) not null default '' after gender;

  • 删除字段
    alter table user drop ename;

  • CURD
    • 插入 insert
      1. insert user(name,gender,email,borthday)values('wang','male','12@qq.com','2020-01-01');

      子查询式插入/复制插入
      insert user(name,gender,email,borthday)(select name,gender,email,borthday from user);
Correcting teacher:天蓬老师天蓬老师

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