本文目錄一覽:
- 1、php編程高手們來吧 use有什麼用?
- 2、PHP關於Use用法的疑問
- 3、php匿名函數中的use有什麼用
- 4、php 使用use 和直接傳參的區別
- 5、PHP 的use 命名空間 是什麼意思
- 6、php子類怎麼使用父類的use
php編程高手們來吧 use有什麼用?
php中use用來以別名的方式引入命名空間:
比如在a.php中調用My\Full命名空間下的Fun對象:
use My\Full;
$fun = new Fun();//這樣就可以了,
如果沒有使用use,
則需要:$fun = new My\Full\Fun();//帶著命名空間路徑
PHP關於Use用法的疑問
子類B不可以直接使用類C的方法。需要Use類C後,才可以使用類C的方法。
use是你在當前文件需要引用哪個類時,在當前文件的代碼前面聲明——如果當前文件有聲明namespace,則放在namespace之後。
php匿名函數中的use有什麼用
php文檔中關於use的說明
所有支持命名空間的PHP版本支持三種別名或導入方式:為類名稱使用別名、為介面使用別名或為命名空間名稱使用別名。PHP 5.6開始允許導入函數或常量或者為它們設置別名。
在PHP中,別名是通過操作符 use 來實現的. 下面是一個使用所有可能的五種導入方式的例子:
Example #1 使用use操作符導入/使用別名
?php
namespace foo;
use My\Full\Classname as Another;
// 下面的例子與 use My\Full\NSname as NSname 相同
use My\Full\NSname;
// 導入一個全局類
use ArrayObject;
// importing a function (PHP 5.6+)
use function My\Full\functionName;
// aliasing a function (PHP 5.6+)
use function My\Full\functionName as func;
// importing a constant (PHP 5.6+)
use const My\Full\CONSTANT;
$obj = new namespace\Another; // 實例化 foo\Another 對象
$obj = new Another; // 實例化 My\Full\Classname 對象
NSname\subns\func(); // 調用函數 My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // 實例化 ArrayObject 對象
// 如果不使用 “use \ArrayObject” ,則實例化一個 foo\ArrayObject 對象
func(); // calls function My\Full\functionName
echo CONSTANT; // echoes the value of My\Full\CONSTANT
?
php 使用use 和直接傳參的區別
實際應用 1 : 在創建閉包時, 生成所use變數的快照, 下文再次調用閉包函數時, 快照變數不改變
$a = 5;
$b = function ($x) use ($a) {
$a += $x; echo $a;
};
$a = 10; // 這個變數被再次賦值, 但是在use語句中的’快照’是不會改變的
$b(100); // 輸出 : 105
實際應用 2 : 使用引用傳值, 生成所use變數的指針, 下文再次調用閉包函數時, 快照變數會改變(其實這樣做與直接傳參已經沒有區別, 所以這麼做意義不大, 而且代碼可讀性降低)
$a = 5;
$b = function ($x) use ($a) {
$a += $x; echo $a;
};
$a = 10; // 變數重新賦值, 上文中閉包所引用的變數值也被改變
$b(100); // 輸出 : 110
PHP 的use 命名空間 是什麼意思
有點類似於 java 中的包機制,用來解決重名問題的,每一個命名空間都是獨立的
給你舉個例子吧,比如我現在想寫兩個類,名字都叫 Action
?php
namespace A; // 定義命名空間
class Action {
//..
}
namespace B; // 定義第二個命名空間
class Action {
//..
}
use 關鍵字用於導入某個命名空間下的類, 如果我在B空間內想使用A空間中的Action類,就需要導入這個類才能使用(當然也可以指明空間前綴來使用)
namespace B;
// 在本空間中需要使用A空間中的Action類,使用use導入
use A\Action; // 導入,如果本空間中也有一個Action會出現錯誤,因為類重名了
use A\Action as A_Action; // 通過取別名的方式解決
$var = new A_Action;
php子類怎麼使用父類的use
你指的是導入命名空間的語法 use?
那不存在父類子類的說法。use只是將另外一個命名空間的定義(類或函數等)導入到當前命名空間使用。
每個文件(如果一個文件有多個命名空間,那每個命名空間導入一次)使用該語法導入一次,就可以一正常使用了。
如果一個文件里同時定義了兩個類,同時只有一個命名空間,那在命名空間後導入一次就可以在兩個類里同時使用了
PHP: 命名空間
原創文章,作者:NXNU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147641.html