Correcting teacher:PHPz
Correction status:qualified
Teacher's comments:
a. php命名空间只会对类、接口、函数、常量产生影响;
b. 命名空间是解决全局成员的命名冲突
c. 声明命名空间的关键字:namespace
d. 声明命名空间,需在第一行
namespace ns1;
class Demo1{}
class Demo1{}
function Demo1(){}
namespace ns2;
class Demo1{}
// 解决命名冲突问题
namespace ns1;
class Demo1{
public static function show() {
return __METHOD__;
}
}
namespace ns2;
class Demo2{
public static function hello() {
return __METHOD__; //类文法的名称
}
public static function line() {
return __LINE__;
}
public static function file() {
return __FILE__;
}
}
// 类的完全限定名称 应该包含空间名
echo Demo2::hello() . "<br />"; //类限定的名称
echo Demo2::line() . "<br />"; //代码在哪一行
echo Demo2::file() . "<br />"; //绝对路径+文件名称
// 默认在本空间下解析demo2类
$total = Demo2::class;
echo $total . "<br />";
echo __NAMESPACE__ . "<br />";
// 回调 call_user_func,需要使用类的限定名称调用
echo call_user_func([$total, 'hello']) . "<br />";
echo call_user_func(['\ns2\Demo2', 'hello']); //找不到此类
// call_user_func_array();
// 回调 突然跳出主程序去执行事先预设好的(未知的)程序
use:引入另外一个空间中的类
include enquire是引入文件
use不等于reuqire或者include,USE前提是已经把文件引入至当前文件
<?php
namespace app\controller;
class Login{
function login(){
return __METHOD__ . "<br />";
}
}
<?php
spl_autoload_register(function($className)
{
echo $className . "<br />";
// 将命名空间分隔符替换成操作系统目录分隔符 为了解决linux系统下,引入带有命名空间的类文件,路径失效的问题
$file = str_replace("\\", DIRECTORY_SEPARATOR, $className) . '.php';
//echo $file;
if (is_file($file) && file_exists($file))
require $file;
});
<?php
// 使用use 引入另外一个空间的类
namespace demo;
// 引入类的自动加载器
require __DIR__ . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR. 'autoload.php';
// ! use引入另外一个空间到当前控件,as是给该空间起别名,当前的别名与类目一致时,可省略
use app\controller\Login;
use app\controller;
//use app\controller as controller;
echo (new controller\Login)->login();
1、由此可见,use
之前需要使用require
引入自动加载类(atutoload.php)
文件;
2、通过自动加载器,demo.php
通过自动加载器加载Login.php
文件的login方法
。
3、use
引入另外一个空间到当前空间,as
是给该空间起别名
,当前别名与类目录一致时,可以省略
登录:mysql -u root -p
查询 show databases;
选择数据表 use 数据库名;
GRANT ALL ON shop.* TO 'JET01'@localhost;
GRANT ALL ON shop.* TO JET01@LOCALHOST;
DROP USER 'JET01'@LOCALHOST;
INSERT
UPDATE
DELETE
SELECT
insert into users(username,password,phone,add_time,pv) values('book',123,10086,NOW(),2);
update users set username='winwin' where uid=21;
delete from users where uid=18;
select username from users where uid;