淺談PHP中use關鍵字的3種使用方法

青灯夜游
發布: 2023-04-10 08:22:01
轉載
3641 人瀏覽過

這篇文章跟大家介紹一下use關鍵字在PHP中的種常見用法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談PHP中use關鍵字的3種使用方法

1. 用來命名空間的別名參考

// 命名空间 include 'namespace/file1.php'; use FILE1\objectA; use FILE1\objectA as objectB; echo FILE1\CONST_A, PHP_EOL; // 2 $oA = new objectA(); $oA->test(); // FILE1\ObjectA $oB = new objectB(); $oB->test(); // FILE1\ObjectA
登入後複製

這個想必在日常的工程化開發中會非常常見。畢竟現在的框架都是使用了命名空間的,不管做什麼都離不開各種類別依賴的調用,在各種控制器檔案的上方都會有大量的use xxx\xxx\xxx;語句。

2. 用於trait特性能力的引入

// trait trait A{ function testTrait(){ echo 'This is Trait A!', PHP_EOL; } } class B { use A; } $b = new B(); $b->testTrait();
登入後複製

即使在最近這兩年,依然見過完全沒有用過trait的PHP程式設計師,不要驚訝,這是真實存在的。想想還有那麼多項目都還在用TP3也就不奇怪了。 trait特性還是非常方便的一種類別功能擴展模式,其實我們可以看作是將這個use放在了類別中就成為了trait的引用定義了。

3. 匿名函數傳參

// 匿名函数传参 $a = 1; $b = 2; // function test($fn) use ($a) // arse error: syntax error, unexpected 'use' (T_USE), expecting '{' function test($fn) { global $b; echo 'test:', $a, '---', $b, PHP_EOL; // test:---2 $fn(3); } test(function ($c) use ($a) { echo $a, '---', $b, '---', $c, PHP_EOL; }); // 1------3
登入後複製

這個就有點意思了吧,方法中要呼叫外部的變數是需要global的,在這裡我們直接透過use()也是可以將變數傳遞過去的。而且這個僅限於在匿名函數中使用。

測試程式碼:https://github.com/zhangyue0503/dev-blog/blob/master/php/202001/source/use關鍵字在PHP中的幾種用法.php

推薦學習:《PHP影片教學

以上是淺談PHP中use關鍵字的3種使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!