php use as是什么意思,use关键字在PHP中的几种用法
在學習了和使用了這么多年的PHP之后,您知道use這個關鍵字在PHP中都有哪些用法嗎?今天我們就來看一下它的三種常見用法。
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()也是可以將變量傳遞過去的。而且這個僅限于在匿名函數中使用。
總結
以上是生活随笔為你收集整理的php use as是什么意思,use关键字在PHP中的几种用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 爬虫输出为空,python
- 下一篇: c#oracle数据库操作类,Oracl