批改状态:合格
老师批语:
<?php// 命名空间的引入方式// 1. 非限定名称, 类似于当前路径// 2. 限定名称, 类似于相对路径// 3. 完全限定名称, , 类似于绝对路径// 例:namespace TestDemo0223{class TestDemo0223{public $className;public function __construct() {$this->className = __CLASS__;}}// 非限定名称, 当前空间引用echo (new TestDemo0223())->className, '<br>';// 限定名称, 下级空间引用echo (new Demo1\Demo1())->className, '<br>';// 完全限定名称, 其他空间引用echo (new \TestDemo10223\TestDemo10223())->className, '<hr>';}namespace TestDemo0223\Demo1{class Demo1{public $className;public function __construct() {$this->className = __CLASS__;}}}namespace TestDemo10223{class TestDemo10223{public $className;public function __construct() {$this->className = __CLASS__;}}}
实例:
namespace ns{use ns\ns1\User;use nsn\nsn1\nsn2\User as NsnUser;$user1 = new User();$user2 = new NsnUser();// 如果别名和引入空间的类名相同,则可以省略use nsn\nsn1\nsn2\Admin;$admin = new Admin();}namespace ns\ns1{class User{}}namespace nsn\nsn1\nsn2{class User{}class Admin{}}
namespace TestDemo10223 {class TestDemo10223{public $className;const namespaceName = __NAMESPACE__;public function __construct(){$this->className = __CLASS__;}public function show():string{return __FUNCTION__;}}function show():string{return __FUNCTION__;}echo '----------------------------调用类----------------------------------------<br>';$cla = '\TestDemo10223\TestDemo10223';echo $cla::namespaceName, '<br>';echo (new $cla)->show(), '<br>';echo '---------------------------调用函数-----------------------------------------<br>';$func = '\TestDemo10223\show';echo $func(), '<br>';}
使用函数spl_autoload_register(callback);,实例:
test_load.php
<?phpnamespace {// 自动加载类(命名空间版)require 'test\test_load.php';use test\TestDemo02231;echo (new TestDemo02231) -> className, '<br>';}
spl_autoload_register(function ($clas){
// 1. 把空间地址符 “\” 转换成 路径分隔符 “/“
// 2. 把修改后的路径字符串的尾部添加 “.php” 后缀
// 3. 引入这个文件
echo $clas, ‘<br>‘;
echo str_replace(‘\‘, DIRECTORY_SEPARATOR, $clas) . ‘.php’, ‘<br>‘;
$file = str_replace(‘\‘, DIRECTORY_SEPARATOR, $clas) . ‘.php’;
require $file;
// require ‘test\TestDemo02231.php’;
// exit();
});
3. test\TestDemo02231.php```php<?phpnamespace test;class TestDemo02231{public $className;public function __construct() {$this->className = __CLASS__;}}
mysql -uadmin -D php_test_project -pquit;select database();use php_test_project;show create database php_test_projectstatuscreate database phpedu collate utf8mb4_unicode_ci;drop database phpedu;
# UNSIGNED: 无符号,大于零的数字# PRIMARY KEY: 设置主键# COMMENT: 注释# DEFAULT: 默认值# CURRENT_TIMESTAMP: 当前时间戳, mysql的内置函数# enum('male', 'female'): 枚举类型,意为只能输入这两个值,输入其他值报错# ENGINE: 引擎# COLLATE: 校对规则# auto_increment: 自动递增的初始值CREATE TABLE staffs (sid INT UNSIGNED auto_increment PRIMARY KEY COMMENT "id",name VARCHAR (150) NOT NULL COMMENT "姓名",gender enum('male', 'female') NOT NULL COMMENT "性别",birthday date NOT NULL COMMENT "生日",create_d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建日期",update_d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "修改如期") ENGINE = INNODB auto_increment = 1 COLLATE = utf8mb4_unicode_ci;
desc staffs;show create table staffs;show tablesdrop table staffsALTER TABLE staffs ADD salary INT UNSIGNED NOT NULL DEFAULT 2000 COMMENT "工资" AFTER gender;ALTER TABLE staffs change salary salary float UNSIGNED NOT NULL DEFAULT 30000;alter table staffs drop salary;1.插入数据insert:
#单条数据1insert staffs (name, gender, birthday, salary) values ("张三", "male", "1999-01-01", 9800)#单条数据2insert staffs set name="李四", gender="male", birthday="1998-01-01", salary="10000.01";#多条数据insert staffs (name,gender, birthday, salary) values('king','male','1992-10-29', 6500),('amy','female','1998-10-22', 7800),('betty','female','1953-10-19', 9800),('jack','male', '1977-10-24', 12500),('marry','female', '1990-01-08', 15800),('alice','female','1989-09-18', 8600),('admin','male','1989-09-18', 16600),('lisa','female','1983-09-13', 13500),('peter','male','1993-09-29', 9600),('linda','female','1993-09-29', 5600);#多条数据insert staffs (name,gender, salary, email,birthday)(select name,gender, salary, email,birthday from staffs);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号