最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類詳解

 更新時(shí)間:2016年12月02日 10:17:33   作者:牛逼的霍嘯林  
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類,結(jié)合實(shí)例形式分析了php命名空間與自動(dòng)加載類的概念、功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類。分享給大家供大家參考,具體如下:

命名空間

避免類名重復(fù),而產(chǎn)生錯(cuò)誤。

<?php
require_once "useful/Outputter.php";
class Outputter {
  // output data
  private $name;
  public function setName($name) {
    $this->name = $name;
  }
  public function getName() {
    return $this->name;
  }
}
$obj = new Outputter(); // 同一命名空間下,類名不能相同,默認(rèn)命名空間為空??找彩且环N命名空間。
$obj -> setName("Jack");
print $obj->getName();
//namespace useful; // 更改命名空間,否則查詢不到Hello類,Fatal error: Class 'my\Hello' not found
$hello = new Hello();
?>
<?php
// useful/Outputter.php
namespace useful; // 命名空間
class Outputter {
  //
}
class Hello {
}
?>

如何調(diào)用命名空間中的類

<?php
namespace com\getinstance\util;
class Debug {
  static function helloWorld() {
    print "hello from Debug\n";
  }
}
namespace main;
// com\getinstance\util\Debug::helloWorld(); // 找不到Debug類
\com\getinstance\util\Debug::helloWorld(); // 加斜杠之后,就從根部去尋找了。
// outPut:hello from Debug
?>

使用use關(guān)鍵字

<?php
namespace com\getinstance\util;
class Debug {
  static function helloWorld() {
    print "hello from Debug\n";
  }
}
namespace main;
use com\getinstance\util;
//Debug::helloWorld(); //Fatal error: Class 'main\Debug' not found
util\Debug::helloWorld();
?>

使用下面的處理,直接可以調(diào)用類

<?php
namespace com\getinstance\util;
class Debug {
  static function helloWorld() {
    print "hello from Debug\n";
  }
}
namespace main;
use com\getinstance\util\Debug; // 直接使用到類
Debug::helloWorld();
?>

\表示全局

global.php

<?php
// no namespace
class Lister {
  public static function helloWorld() {
    print "hello from global\n";
  }
}
?>
<?php
namespace com\getinstance\util;
require_once 'global.php';
class Lister {
  public static function helloWorld() {
    print "hello from ".__NAMESPACE__."\n"; // __NAMESPACE__當(dāng)前namespace
  }
}
Lister::helloWorld(); // access local
\Lister::helloWorld(); // access global
?>

輸出:

hello from com\getinstance\util
hello from global

命名空間加{}

<?php
namespace com\getinstance\util {
  class Debug {
    static function helloWorld() {
      print "hello from Debug\n";
    }
  }
}
namespace main {
  \com\getinstance\util\Debug::helloWorld();
}
?>

output:

hello from Debug

全局命名空間

<?php
namespace { // 全局空間
  class Lister {
    public static function helloWorld() {
      print "hello from global\n";
    }
  }
}
namespace com\getinstance\util {
  class Lister {
    public static function helloWorld() {
      print "hello from ".__NAMESPACE__."\n";
    }
  }
  Lister::helloWorld(); // access local
  \Lister::helloWorld(); // access global
}
?>

__autoload 自動(dòng)加載類

ShopProduct.php

<?php
class ShopProduct {
  function __construct() {
    print "ShopProduct constructor\n";
  }
}
?>
<?php
function __autoload( $classname ) { // 自動(dòng)加載,根據(jù)類名加載類
  include_once( "$classname.php" );
}
$product = new ShopProduct( 'The Darkening', 'Harry', 'Hunter', 12.99 );
?>

output:

ShopProduct constructor

進(jìn)一步優(yōu)化處理

位于文件夾business/ShopProduct.php

<?php
class business_ShopProduct { // 這里的類命名就要遵循規(guī)則了
  function __construct() {
    print "business_ShopProduct constructor\n";
  }
}
?>
<?php
function __autoload( $classname ) {
  $path = str_replace('_', DIRECTORY_SEPARATOR, $classname ); // 智能化處理
  require_once( "$path.php" );
}
$x = new ShopProduct();
$y = new business_ShopProduct();
?>

output:

ShopProduct constructor
business_ShopProduct constructor

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP檢查空值的方法總結(jié)

    PHP檢查空值的方法總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于PHP檢查空值的方法總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題

    windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題

    在用ThinkPHP開發(fā)的網(wǎng)站,在linux服務(wù)器下使用過一段時(shí)間,一切正常。但是更換到windows服務(wù)器時(shí),發(fā)現(xiàn)搜索的時(shí)候,無法搜索中文,查不出相應(yīng)的結(jié)果。查看數(shù)據(jù)庫(kù)發(fā)現(xiàn)數(shù)據(jù)是存在的。linux服務(wù)器下正常,而且搜索數(shù)字或字母程序正常,說明程序是沒有任何問題的。
    2023-06-06
  • php通過修改header強(qiáng)制圖片下載的方法

    php通過修改header強(qiáng)制圖片下載的方法

    這篇文章主要介紹了php通過修改header強(qiáng)制圖片下載的方法,實(shí)例分析了php強(qiáng)制圖片下載的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP實(shí)現(xiàn)通過正則表達(dá)式替換回調(diào)的內(nèi)容標(biāo)簽

    PHP實(shí)現(xiàn)通過正則表達(dá)式替換回調(diào)的內(nèi)容標(biāo)簽

    這篇文章主要介紹了PHP實(shí)現(xiàn)通過正則表達(dá)式替換回調(diào)的內(nèi)容標(biāo)簽的方法,涉及php正則匹配與替換的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • php使用NumberFormatter格式化貨幣的方法

    php使用NumberFormatter格式化貨幣的方法

    這篇文章主要介紹了php使用NumberFormatter格式化貨幣的方法,實(shí)例分析了php中NumberFormatter類的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHPLog php 程序調(diào)試追蹤工具

    PHPLog php 程序調(diào)試追蹤工具

    本文將為你介紹一個(gè)調(diào)試工具,它可以替代echo,print_r,var_dump等系統(tǒng)函數(shù),還具有調(diào)用棧及參數(shù)追蹤功能. 簡(jiǎn)言之,它是debug_backtrace的web版本.
    2009-09-09
  • PHP加密解密類實(shí)例分析

    PHP加密解密類實(shí)例分析

    這篇文章主要介紹了PHP加密解密類,實(shí)例分析了php實(shí)現(xiàn)加密與解密的原理與相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • WordPress中用于獲取文章信息以及分類鏈接的函數(shù)用法

    WordPress中用于獲取文章信息以及分類鏈接的函數(shù)用法

    這篇文章主要介紹了WordPress中用于獲取文章信息以及分類鏈接的函數(shù)用法,分別是get_post()和get_category_link()的使用,需要的朋友可以參考下
    2015-12-12
  • PHP可逆加密/解密函數(shù)分享

    PHP可逆加密/解密函數(shù)分享

    很多項(xiàng)目的會(huì)員系統(tǒng),都要求要有記住登錄功能,在通過cookies實(shí)現(xiàn)功能是,由于要將客戶信息直接保存到cookies,如果直接寫入cookies勢(shì)必會(huì)帶來安全隱患,因此通過可逆加密后再保存到cookies相對(duì)就安全了
    2012-09-09
  • php讀取文件內(nèi)容到數(shù)組的方法

    php讀取文件內(nèi)容到數(shù)組的方法

    這篇文章主要介紹了php讀取文件內(nèi)容到數(shù)組的方法,涉及php中file、rtrim等函數(shù)對(duì)文件及字符串的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

疏勒县| 基隆市| 黄石市| 慈溪市| 邹平县| 东山县| 广安市| 马龙县| 万州区| 漾濞| 株洲市| 苍南县| 武宁县| 阳谷县| 马龙县| 龙川县| 丰都县| 阿坝| 喀喇| 疏勒县| 余庆县| 崇明县| 礼泉县| 阳高县| 和田市| 苍南县| 名山县| 昔阳县| 柳江县| 长垣县| 嘉黎县| 北京市| 遂昌县| 克什克腾旗| 海门市| 吴堡县| 威信县| 玛纳斯县| 衡阳县| 博白县| 阿图什市|