1. 程式人生 > >php 中use關鍵字的用法

php 中use關鍵字的用法

use最常用在給類取別名

use還可以用在閉包函式中,程式碼如下

<?php
function test() {
    $a = 'hello';
    return function ($a)use($a) {
        echo $a . $a;
    };
}
$b = test();
$b('world');//結果是hellohello



當執行test函式,test函式返回閉包函式,閉包函式中的use中的變數為test函式中的$a變數,當執行閉包函式後,輸出“hellohello”,由此說明函式體中的變數的優先順序是:use中的變數的優先順序比閉包函式引數中的優先順序要高

use中的引數也可以使用引用傳遞的,程式碼如下

<?php
function test() {
    $a=18;
    $b="Ly";
    $fun = function($num, $name) use(&$a, &$b) {
        $a = $num;
        $b = $name;
    };
    echo "$b:$a<br/>";
    $fun(30,'wq');
    echo "$b:$a<br/>";
}
test();
//結果是Ly:18
//結果是wq:30
<?php 
function index() {
	$a = 1;
	
	return function () use(&$a){
		echo $a;
		$a++;
	}; 
}

$a = index();


$a();
$a();
$a();
$a();
$a();
$a();
//123456
 ?>




相關推薦

php use關鍵字用法

use最常用在給類取別名 use還可以用在閉包函式中,程式碼如下 <?php function test() { $a = 'hello'; return function ($a)use($a) { echo $a . $a;

php use 關鍵字用法詳解

目前 我總結的 use 關鍵字的用法有三種 1 .宣告使用某個名稱空間中的類  在名稱空間中的用法網上資料比較多,手冊上講解的也詳細這裡就不贅述了 2.用在匿名函式之後給匿名函式增加引數 主要講解us

Javastatic關鍵字用法總結

副本 大括號 跟著 rac clas main 靜態成員變量 abstract 全局變量 1. 靜態方法 通常,在一個類中定義一個方法為static,那就是說,無需本類的對象即可調用此方法 聲明為static的方法有以下幾條限制: · 它們僅能調用其他的sta

PHP的ArrayAccess用法

最近看laravel原始碼,發現裡面用了很多框架類實現了ArrayAccess介面,以前對這塊不是很熟悉,查了一下這個語法的用法,發現這個其實就是實現讓物件以陣列形式來使用。 在官方文件上: ArrayAccess { /* Methods */ abstract public

Php的goto用法

我們先舉個簡單示例: <?php goto LABEL; //這個標籤自定義 echo '喬峰'; LABEL: echo '鳩摩智'; 以上例程會輸出:鳩摩智 解釋:goto 操作符可以用來跳轉到程式中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是&nbs

PHPnl2br strpos用法

一.nl2br nl2br,就是在字串所有新行之前插入html換行標記。用來解決需要大量換行而太過麻煩的問題,舉個例子: <?php header("content-type:text/html;charset=utf-8"); $m = <<<STR 張三,男,2

javathrows關鍵字用法

定義一個方法的時候可以使用throws關鍵字宣告。使用throws關鍵字宣告的方法表示此方法不處理異常,而交給方法呼叫處進行處理。 throws關鍵字格式: public 返回值型別 方法名稱(引數列表,,,)throws 異常類{};  假設定義一個除法,對於除法操作可能出現

php 的closure用法詳解

php 中的closure用法詳解 Closure,匿名函式,是php5.3的時候引入的,又稱為Anonymous functions。字面意思也就是沒有定義名字的函式。比如以

詳解PHPforeach的用法和例項

在PHP中經常會用到foreach的使用,而要用到foreach,就必須用到陣列。因此,在這篇文章中,我們一邊講陣列,一邊講foreach。 foreach有兩種語法: 第一種:遍歷給定的 陣列語句 array_expression 陣列。每次迴圈中,當前單元的值被賦給

MySQL關鍵字用法(一)

MySQL中關鍵字的用法(一) Insert:增加 insert into * values() insert into user values(‘11’,‘諸葛亮’,‘1011’); 不多解釋,向表中新增一條語句,不清楚的去看MySQL的簡單的增刪改查

phptrait的用法

測試 對象 com cto image php src 圖片 -o 代碼: <?php /* * 定義trait:test1 */ trait test1{ public function sayhello(){ echo ‘hello‘; } } /* *

phpuse關鍵字與class_alias的作用域區別

use可以用在名稱空間下,也可以不用再名稱空間下,他在兩者中的作用是一致的,都是在編譯的時候執行,不真正的載入類,因為是編譯的時候執行,所以只能在全域性環境使用,及不能使用在方法內部,條件判斷內部。 引入類的時候最好使用as來定義別名。通過use定義的別名類在get_declare_class函式裡沒有。

phpsprintf函式用法

在使用sprintf過程中,有時候會重複使用後面的引數 <?php $num = 5; $location = 'tree'; $format = 'The %2$s contains %1$d

C++extern關鍵字用法小結

總結C++中關於extern關鍵字的用法。 1.變數的生明和定義中 C++語言支援分離式編譯機制,該機制允許將程式分割為若干個檔案,每個檔案可被獨立編譯。為了將程式分為許多檔案,則需要在檔案中共享程式碼,例如一個檔案的程式碼可能需要另一個檔案中中定義的變數。 為了支援分離式編譯,C++允許將宣告和定義分離開來

phpswitch語句用法詳解

Switch語句也是面向物件程式設計語句中最長常見的邏輯控制語句了。Switch 語句用於執行基於多個不同條件的不同動作 – 即當條件不同的時候,執行不同的邏輯操作。 本文介紹php中的switch語句的用法,它跟其他語句中的switch用法差不多的,但注意有

PHP global 變數用法

  PHP中的變數也有訪問域。作用域可以使用PHP中global   在函式內部、物件中和類中定義的區域性變數在函式外部是無法被訪問到的;同理,在函式外部、物件外和類外定義的變數,如果沒有被傳入,也是無法被訪問到的。   但是如果一個很多變數要同時被傳入很多函式、物件或者類,

PHPString一些用法

1.利用索引選字     JS中字串可以利用str.charAt(索引)選取字串的某個字。     PHP中則是使用$str[索引]或者$str{索引}. 2.型別轉換     判斷裡,字元只有是''空字串的時候為false, ' '空格是true, 'false' 也是

MySQL關鍵字用法(二)

MySQL中的關鍵字的用法(二) limit:偏移量和數量 注意limit和offset的區別,下面有寫到offset,注意區分; 在我們使用查詢語句的時候,經常要返回前幾條或者中間某幾行資料,這個時候怎麼辦呢?不用擔心,mysql已經為我們提供了這樣一個功

php的cookie用法

cookie和session都可以暫時儲存在多個頁面中使用的變數,但是它們有本質的差別。 cookie存放在客戶端瀏覽器中,session儲存在伺服器上。它們之間的聯絡是session ID一般儲存在cookie中。 cookie工作原理 當客戶訪問某個網站時,在

PHP的$this用法

this是指向當前物件的指標<?php class human{ public $name="李四"; public function eat(){ echo $this->name,'在吃飯'; } public functio