PHP學習-chapter2之php的特性 chapter one php代碼學習 學習php要多

來源:互聯網
上載者:User
  • 2.1命名空間:
  • 避免衝突,放在
  • 引用命名空間:use namespace Symphony/HttpFoundation;
  • 聲明命名空間:namespace Oreilly;
  • 引用命名空間中的某一類:use Oreilly/con as a;
  • 引用命名空間中的函數:use func Oreilly/functionName;
  • 引用命名空間中的常量:user constant Rreilly/CONST_NAME;
  • 多重匯入:檔案頭多個use語句
  • 在一個檔案中使用多個命名空間
      • namespace Foo{}
      • namespace Bar{}
  • 全域命名空間:沒有命名空間的代碼,例如php原生的Exception類,前面家\訪問可以做到告訴php別再當前命名空間中尋找,要到全域空間中尋找,$e = new \Exception()
  • 完整php類名:(命名空間+類名)
  • 2.2使用介面
  • 介面定義:interface Documentable{
    • public function getId();
    • public function getContent();
    • }
  • 介面實現:class HtmlDocument implements Documentable{
    • public function _construct(){}
    • public function getId(){
      • return $this->url;
    • }
    • public function getContent(){}
  • }
  • 2.3性狀trait

使用性狀的原因,兩個類需要十分相似的功能結構,如果採用繼承的方式實現,則會破壞原本的類階層,如果使用介面實現,則會導致代碼重複,因此引入性狀

  • 定義性狀:trait MyTrait{
      • //性狀的實現
    • }
  • 性狀的使用:class MyClass{
      • use MyTrait;
    • }
  • 2.4產生器generator,迭代器
  • 產生器即一個php函數,並使用yield關鍵字,產生器不返回值,只產出值,只能向前進的迭代器,適用於迭代大型的資料集。
  • 產生器的建立方式:function myGenerator(){
      • yield ‘value1’;
      • yield ‘value2’;
    • }
  • 產生器的使用:PHP返回Generator類的對象,有利於節省記憶體,例如需要產生一個10000範圍內的整數,一種方式是在記憶體中建立10000個整數,而採用產生器迭代,每次只需要佔用一個整數的記憶體即可。
  • foreach(myGenerator() as $yieldValue){
      • echo $yieldValue;//輸出value1,value2
    • }
  • 2.5閉包和匿名函數
  • 閉包:建立時封裝周圍狀態的函數,即使閉包所在的環境不存在了,閉包中封裝的狀態依然存在
  • 匿名函數:沒有名稱的函數,可以付值給變數
  • 閉包和匿名函數其實是對象,屬於Closure類型的執行個體
  • 2.6建立閉包
  • 只要變數名後面有(,php會尋找_invoke()方法,沒有閉包之前php只能夠進行具名回調
    • $numbersPlusOne = array_map(function($number) {
      • return $number+ 1;
      • }, [1,2,3]);
    • print_r($numbersPlusOne);// 輸出 -->[2,3,4]
  • 閉包的附加狀態:bindTo()活著use關鍵字
    • 使用use關鍵字:functionenclosePerson($name) {
      • return function ($doCommand)use ($name) { //封裝了name參數
        • return sprintf('%s, %s',$name, $doCommand);
      • };
    • }
    • 使用 bindTo() 方法附加閉包的狀態 :
      • $this->routes[$routePath]= $routeCallback->bindTo($this,__CLASS__);
      • 第二個參數是將此閉包綁定的物件類型
  • 2.7位元組程式碼快取Zend OPcache
  • 2.8PHP內建伺服器

php -S localhost:4000

如果需要在別的機器上訪問此伺服器,可以設定為php -S 0.0.0.0:4000

伺服器配置:php -S localhost:4000 -c app/config/php.ini

由於內建的伺服器不具有.htaccess檔案,因此不支援很多PHP架構,使用內建的路由指令碼來替代

php -S localhost:4000 router.php

以上就介紹了PHP學習-chapter2之php的特性,包括了chapter,php學習方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.