<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      php Closure類的使用方法

      [摘要]Closure,匿名函數,又稱為Anonymous functions,是php5.3的時候引入的。匿名函數就是沒有定義名字的函數。這點牢牢記住就能理解匿名函數的定義了。PHP Closure類之前...
      Closure,匿名函數,又稱為Anonymous functions,是php5.3的時候引入的。匿名函數就是沒有定義名字的函數。這點牢牢記住就能理解匿名函數的定義了。

      PHP Closure類之前在PHP預定義接口中介紹過,但它可不是interface哦,它是一個內部的final類。Closure類是用來表示匿名函數的,所有的匿名函數都是Closure類的實例。

      $func = function() {
        echo 'func called';
      };
      var_dump($func); //class Closure#1 (0) { }
      $reflect =new ReflectionClass('Closure');
      var_dump(
        $reflect->isInterface(), //false
        $reflect->isFinal(), //true
        $reflect->isInternal() //true
      );

      Closure類結構如下:

      Closure::construct — 用于禁止實例化的構造函數
      Closure::bind — 復制一個閉包,綁定指定的$this對象和類作用域。
      Closure::bindTo — 復制當前閉包對象,綁定指定的$this對象和類作用域。

      看一個綁定$this對象和作用域的例子:

      class Lang
      {
        private $name = 'php';
      }
      $closure = function () {
        return $this->name;
      };
      $bind_closure = Closure::bind($closure, new Lang(), 'Lang');
      echo $bind_closure(); //php

      另外,PHP使用魔術方法invoke()可以使類變成閉包:

      class Invoker {
        public function invoke() {return METHOD;}
      }
      $obj = new Invoker;
      echo $obj(); //Invoker::invoke

      以上就是php Closure類的使用方法的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清