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

PHP面向對象程序設計之命名空間與自動加載類詳解

 更新時間:2016年12月02日 10:17:33   作者:牛逼的霍嘯林  
這篇文章主要介紹了PHP面向對象程序設計之命名空間與自動加載類,結合實例形式分析了php命名空間與自動加載類的概念、功能、使用方法與相關注意事項,需要的朋友可以參考下

本文實例講述了PHP面向對象程序設計之命名空間與自動加載類。分享給大家供大家參考,具體如下:

命名空間

避免類名重復,而產生錯誤。

<?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(); // 同一命名空間下,類名不能相同,默認命名空間為空??找彩且环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 {
}
?>

如何調用命名空間中的類

<?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關鍵字

<?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();
?>

使用下面的處理,直接可以調用類

<?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__當前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 自動加載類

ShopProduct.php

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

output:

ShopProduct constructor

進一步優(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

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《PHP網(wǎng)絡編程技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

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

相關文章

  • PHP檢查空值的方法總結

    PHP檢查空值的方法總結

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

    windows服務器使用IIS時thinkphp搜索中文無效問題

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

    php通過修改header強制圖片下載的方法

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

    PHP實現(xiàn)通過正則表達式替換回調的內容標簽

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

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

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

    PHPLog php 程序調試追蹤工具

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

    PHP加密解密類實例分析

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

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

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

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

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

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

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

最新評論

黎平县| 重庆市| 合江县| 舟山市| 柳江县| 美姑县| 丹凤县| 陈巴尔虎旗| 隆安县| 广元市| 万安县| 友谊县| 星子县| 尉氏县| 杂多县| 武陟县| 行唐县| 剑河县| 铁岭市| 曲水县| 龙江县| 星子县| 绥德县| 余干县| 收藏| 临邑县| 天长市| 白城市| 郎溪县| 威远县| 涿鹿县| 嵊泗县| 怀化市| 防城港市| 保德县| 克山县| 英山县| 莱芜市| 弋阳县| 太仓市| 太和县|