亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP命名空間與自動加載類詳解

2024-05-05 00:05:14
字體:
來源:轉載
供稿:網友

本文實例講述了PHP命名空間與自動加載類。分享給大家供大家參考,具體如下:

今天我要給大家介紹的是PHP的命名空間 和 自動加載類

我先簡單的分開演示 在放在一起

大家請看:

什么是自動加載類?

想必大家都應該知道__autoload 這個魔術方法

$db = new DB();function __autoload($className){echo $className;exit();//在這個里面引用類}

在運用這個類只能加載一次 ,在很多時候我們要引入的不止一個類這個時候怎么辦呢!

牛逼的php大神們  出了個新方法 來解決 這個問題  請看就是這個函數

spl_autoload_register() 滿足了此類需求。 它實際上創建了 autoload 函數的隊列,按定義時的順序逐個執行。相比之下, __autoload() 只可以定義一次。

這個函數的用法有很多  這里先給大家介紹一種使用方法

如下:

function load1($className){echo 1;require $className . '.php';}spl_autoload_register('load1'); //將load1函數注冊到自動加載隊列中。$db = new DB(); //找不到DB類,就會自動去調用剛注冊的load1函數了//php 5.3之后,也可以像這樣支持匿名函數了。spl_autoload_register(function($className){if (is_file('./lib/' . $className . '.php')) {require './lib/' . $className . '.php';}});

多個spl_autoload_register的使用

判斷是否有此文件

如果有引入 如果沒有 沒有如果了,哪來的如果

function load1($className){  echo 1;  if (is_file($className . '.php')) {    require $className . '.php';  }}function load2($className){  echo 2;  if (is_file('./app/' . $className . '.php')) {    require './app/' . $className . '.php';  }}function __autoload($className){  echo 3;  if (is_file('./lib/' . $className . '.php')) {    require './lib/' . $className . '.php';  }}//注冊了3個spl_autoload_register('load1');spl_autoload_register('load2');spl_autoload_register('__autoload');$db = new DB(); //DB就在本目錄下$info = new Info(); //Info 在/lib/Info.php

我們可以打印spl_autoload_functions()函數,來顯示一共注冊了多少個自動加載:

var_dump(spl_autoload_functions());//數組的形式輸出array (size=3)0 => string 'load1' (length=5)1 => string 'load2' (length=5)2 => string '__autoload' (length=10)

命名空間

一個php文件里 是不支持 new 兩個名字的

這個時候我們就能用的到命名空間了

namespace app;class new{public function ten(){echo "85";}}namespace hii;class new{public function ten(){echo "85";}}

spl_autoload_register自動加載+namespace命名空間 的使用

廢話不多數  看例子

AutoLoading/loading

<?phpnamespace AutoLoading;class loading {public static function autoload($className){    //把 / 轉換層 / , 便于兼容Linux文件找。Windows 下是通用的    //由于namspace 很規格,所以直接很快就能找到    $fileName = str_replace('//', '/', DIR . '//'. $className) . '.php';    if (is_file($fileName)) {    require $fileName;    } else {    echo $fileName . ' is not exist'; die;    }  }}

上面就是一個自動加載的核心思想方法。下面我們就來spl_autoload_register來注冊這個函數:

index.php

<?php//定義當前的目錄絕對路徑define('DIR', dirname(__FILE__));//加載這個文件require DIR . '/loading.php';//采用`命名空間`的方式注冊。php 5.3 加入的//也必須是得是static靜態方法調用,然后就像加載namespace的方式調用,注意:不能使用usespl_autoload_register("//AutoLoading//loading::autoload");// 調用三個namespace類//定位到Lib目錄下的Name.phpLib/Name::test();//定位到App目錄下Android目錄下的Name.phpApp/Android/Name::test();//定位到App目錄下Ios目錄下的Name.phpApp/Ios/Name::test();

由于我們是采用PSR-O方式來定義namespace的命名的,所以很好的定位到這個文件的在哪個目錄下了。很爽。對不對。

APP/Android/Name

namespace App/Android;class Name{public function __construct(){echo __NAMESPACE__ . "<br>";}public static function test(){echo __NAMESPACE__ . ' static function test <br>';}}

所以就會很容易找到文件,并輸出:

Lib static function test
App/Android static function test
App/Ios static function test

好了?;镜臇|西就講完了.

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产二区| 在线视频欧美日韩精品| 国产精品日韩av| 午夜美女久久久久爽久久| 国产狼人综合免费视频| 欧美激情亚洲激情| 欧美日韩福利视频| 欧美理论电影网| 欧美裸体xxxx极品少妇软件| 欧美资源在线观看| 国产日韩欧美夫妻视频在线观看| 69影院欧美专区视频| 成人免费午夜电影| 国产精品久久不能| 国产精品一区二区久久国产| 亚洲精品日韩久久久| 性欧美暴力猛交69hd| 亚洲成人av资源网| 不卡在线观看电视剧完整版| 亚洲欧美三级伦理| 粉嫩老牛aⅴ一区二区三区| 黑人巨大精品欧美一区二区| 欧美亚洲第一页| 国产剧情日韩欧美| 午夜精品久久久久久99热软件| 国产成人精品免费久久久久| 成人高清视频观看www| 日韩成人在线电影网| 成人欧美一区二区三区在线湿哒哒| 亚洲最大成人网色| 亚洲精品视频免费在线观看| 久久成人精品电影| 一区二区三区回区在观看免费视频| 57pao成人国产永久免费| 国产精品人成电影在线观看| 清纯唯美日韩制服另类| 国产一区二区黄| 欧美激情视频三区| 日本亚洲欧洲色α| 69久久夜色精品国产7777| 国产美女搞久久| 清纯唯美亚洲综合| 日韩欧美亚洲范冰冰与中字| 国产精品v片在线观看不卡| 精品国产一区二区在线| 欧美激情在线观看| 国产精品综合久久久| 精品伊人久久97| 国产在线拍揄自揄视频不卡99| 亚洲成人精品视频| 久久久久久久亚洲精品| 欧美日韩爱爱视频| 日韩在线欧美在线| 91免费看片在线| 精品久久久久久久久久久久久| 亚洲综合小说区| 欧美性生交大片免网| 久久国产视频网站| 亚洲精品短视频| 国产精品a久久久久久| 久久99国产精品久久久久久久久| 欧美性理论片在线观看片免费| 日韩国产欧美区| 国产精品扒开腿做爽爽爽的视频| 亚洲高清久久网| 国产精品va在线播放我和闺蜜| 成人午夜激情免费视频| 欧美乱人伦中文字幕在线| 精品国产欧美一区二区三区成人| 国产丝袜一区二区三区| 中文在线资源观看视频网站免费不卡| 亚洲精品动漫久久久久| 亚洲自拍偷拍网址| 欧美视频在线观看免费网址| 国产亚洲精品成人av久久ww| 欧美亚洲视频在线看网址| 永久免费看mv网站入口亚洲| 成人h视频在线| 91亚洲精品久久久| www.xxxx精品| 日本欧美在线视频| 国产精品久久久久久久久借妻| 久久久免费高清电视剧观看| 中文字幕亚洲无线码在线一区| 欧美重口另类videos人妖| 97欧美精品一区二区三区| 中文字幕一精品亚洲无线一区| 色偷偷88888欧美精品久久久| 亚洲欧洲国产伦综合| 日韩三级影视基地| 国产精品欧美在线| 日韩在线播放av| 欧美亚洲在线视频| 在线成人一区二区| 久久久国产一区二区三区| 激情懂色av一区av二区av| 日韩精品免费综合视频在线播放| 中文字幕久久亚洲| 亚洲欧美日韩天堂一区二区| 亚洲精品在线不卡| 中文字幕在线看视频国产欧美| 中文字幕九色91在线| 欧美一性一乱一交一视频| 亚洲缚视频在线观看| 日韩大片免费观看视频播放| 国产精品免费久久久| 亚洲性视频网站| 欧美放荡办公室videos4k| 亚洲sss综合天堂久久| 日韩电影中文字幕在线观看| 国产一区二区丝袜高跟鞋图片| 久久久久久久国产精品视频| 久久91精品国产91久久跳| 亚洲理论片在线观看| 国产日韩欧美一二三区| 久久免费观看视频| 亚洲男人7777| 久久伊人91精品综合网站| 精品一区二区三区三区| 欧美乱大交做爰xxxⅹ性3| 国产精品精品视频| 国产精品免费一区二区三区都可以| 日韩精品在线免费观看视频| 亚洲一二三在线| 欧美一性一乱一交一视频| 日韩国产欧美区| 97久久精品人人澡人人爽缅北| 狠狠躁夜夜躁久久躁别揉| 成人av电影天堂| 亚洲色图狂野欧美| 成人激情视频小说免费下载| 7m精品福利视频导航| 亚洲精品日韩丝袜精品| 一本大道香蕉久在线播放29| 伊人久久男人天堂| 欧美美女18p| 久久久久亚洲精品成人网小说| 欧美俄罗斯性视频| 国外成人在线直播| 亚洲成人免费网站| 综合136福利视频在线| 亚洲精品日韩丝袜精品| 色吧影院999| 久久天堂av综合合色| 中文字幕亚洲综合久久筱田步美| 中文字幕亚洲欧美| 色综合影院在线| 亚洲精品动漫久久久久| 精品国产一区久久久| 欧美另类在线播放| 国产日韩在线免费| 亚洲成人a**站| 中文字幕日韩电影| 中文字幕日韩av| 97热精品视频官网| 国产亚洲精品一区二区| 中文字幕在线国产精品| 色综合久久精品亚洲国产| 国产女同一区二区| 91禁国产网站| 亚洲欧洲高清在线| 国产精品丝袜白浆摸在线| 亚洲精品一区av在线播放| 亚洲aa中文字幕|