批改状态:合格
老师批语:
类是php四大全局成员(常量 函数 类 接口)中的一员,全局成员有着不受作用域限制的优势,同时也存在名称唯一的限制。
命名空间的出现就能很好的去解决这个唯一命名的问题。
命名空间可以起到一个命名化块的作用,命名空间的命名可以随意起,但是一般建议跟目录一致,命名空间的命名规则参考变量的命名规则,不能是数字开头,不能是内部函数,且需要写在除declare指令外的第一行(注释不算在内)。
命名空间的两种写法:
namespace ns1;
namespace ns1{}
其中全局空间写做:
namespace{}
但是这里需要注意,如果用namespace ns1;的形式就必须所有命名空间都用namespace ns1;的形式,如果用namespace ns1{}的形式就必须所有命名空间都用namespace ns1{}的形式。
下面将autoload.php自动加载做一个命名空间版本的升级:
<?php
//类的自动加载
spl_autoload_register(function($className)
{
// echo $className;//可以先echo一下检查下要加载的类
// echo '<hr>';
//将类的命名空间与类文件所在的路径保持一一映射
$file = __DIR__.str_replace('\\',DIRECTORY_SEPARATOR,('\..\..\\'.$className)).'.php';//绝对路径方式获取$file地址
// $file = str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';//相对路径方式获取$file地址
// echo $file;//地址错误的情况下,可以检查下地址的内容
//判断$file是否是已存在的文件夹
if(!is_file($file)&&file_exists($file))
{
//如果不是则抛出错误
throw new \Exception('文件名不合法或不存在');
}
//没问题则引入$file的地址
require $file;
});点击 "运行实例" 按钮查看在线实例
以下面的文件做为测试:
Demo(文件夹)
app(文件夹)
admin(文件夹)
controller(文件夹)
Login.php(php文件)代码:
<?php
namespace app\admin\controller;
class Login
{
}User.php(php文件)
<?php
namespace app\admin\controller;
//控制器 在User控制器文件中 使用User模型文件
use app\admin\model\User as UserModel;
class User
{
public function index()
{
return UserModel::getInfo();
}
}model(文件夹)
Login.php(php文件)
<?php
namespace app\admin\model;
class Login
{
}User.php(php文件)
<?php
namespace app\admin\model;
class User
{
static function getInfo()
{
return '获取到用户信息';
}
}autoload.php(php文件,代码参考上文)
demo.php(php文件)
<?php //引入类的自动加载器 require 'app/admin/autoload.php'; //通过命名空间引入各个类文件,其中遇到重名的需要用as进行重命名的处理操作 use app\admin\controller\Login; use app\admin\controller\User; use app\admin\model\Login as LoginModel; use app\admin\model\User as UserModel; //将所有引入的类进行实例化 $loginController = new Login; $UserController = new User; $loginModel = new LoginModel; $UserModel = new UserModel; //调用User类中的index() echo $UserController->index();
正常输出:获取到用户信息。

msql初体验
sql语句四种分类:
数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL
DQL:基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>。
DML:用来对数据库进行操作,常用的如:查询:SELECT,插入:INSERT,更新:UPDATE,删除:DELETE,即增删改查中的增删查改。
DDL:主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,一般主要在建立表时使用。
DCL:数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号