
批改狀態(tài):合格
老師批語:
類是php四大全局成員(常量 函數(shù) 類 接口)中的一員,全局成員有著不受作用域限制的優(yōu)勢(shì),同時(shí)也存在名稱唯一的限制。
命名空間的出現(xiàn)就能很好的去解決這個(gè)唯一命名的問題。
命名空間可以起到一個(gè)命名化塊的作用,命名空間的命名可以隨意起,但是一般建議跟目錄一致,命名空間的命名規(guī)則參考變量的命名規(guī)則,不能是數(shù)字開頭,不能是內(nèi)部函數(shù),且需要寫在除declare指令外的第一行(注釋不算在內(nèi))。
命名空間的兩種寫法:
namespace ns1;
namespace ns1{}
其中全局空間寫做:
namespace{}
但是這里需要注意,如果用namespace ns1;的形式就必須所有命名空間都用namespace ns1;的形式,如果用namespace ns1{}的形式就必須所有命名空間都用namespace ns1{}的形式。
下面將autoload.php自動(dòng)加載做一個(gè)命名空間版本的升級(jí):
<?php //類的自動(dòng)加載 spl_autoload_register(function($className) { // echo $className;//可以先echo一下檢查下要加載的類 // echo '<hr>'; //將類的命名空間與類文件所在的路徑保持一一映射 $file = __DIR__.str_replace('\\',DIRECTORY_SEPARATOR,('\..\..\\'.$className)).'.php';//絕對(duì)路徑方式獲取$file地址 // $file = str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';//相對(duì)路徑方式獲取$file地址 // echo $file;//地址錯(cuò)誤的情況下,可以檢查下地址的內(nèi)容 //判斷$file是否是已存在的文件夾 if(!is_file($file)&&file_exists($file)) { //如果不是則拋出錯(cuò)誤 throw new \Exception('文件名不合法或不存在'); } //沒問題則引入$file的地址 require $file; });
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
以下面的文件做為測(cè)試:
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 //引入類的自動(dòng)加載器 require 'app/admin/autoload.php'; //通過命名空間引入各個(gè)類文件,其中遇到重名的需要用as進(jìn)行重命名的處理操作 use app\admin\controller\Login; use app\admin\controller\User; use app\admin\model\Login as LoginModel; use app\admin\model\User as UserModel; //將所有引入的類進(jìn)行實(shí)例化 $loginController = new Login; $UserController = new User; $loginModel = new LoginModel; $UserModel = new UserModel; //調(diào)用User類中的index() echo $UserController->index();
正常輸出:獲取到用戶信息。
msql初體驗(yàn)
sql語句四種分類:
數(shù)據(jù)查詢語言DQL,數(shù)據(jù)操縱語言DML,數(shù)據(jù)定義語言DDL,數(shù)據(jù)控制語言DCL
DQL:基本結(jié)構(gòu)是由SELECT子句,F(xiàn)ROM子句,WHERE子句組成的查詢塊:SELECT <字段名表>FROM <表或視圖名>WHERE <查詢條件>。
DML:用來對(duì)數(shù)據(jù)庫進(jìn)行操作,常用的如:查詢:SELECT,插入:INSERT,更新:UPDATE,刪除:DELETE,即增刪改查中的增刪查改。
DDL:主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結(jié)構(gòu),數(shù)據(jù)類型,表之間的鏈接和約束等初始化工作上,一般主要在建立表時(shí)使用。
DCL:數(shù)據(jù)控制語言DCL用來授予或回收訪問數(shù)據(jù)庫的某種特權(quán),并控制數(shù)據(jù)庫操縱事務(wù)發(fā)生的時(shí)間及效果,對(duì)數(shù)據(jù)庫實(shí)行監(jiān)視等。在默認(rèn)狀態(tài)下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權(quán)力執(zhí)行DCL。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)