在PHP中,如果命名空間字串過長時,我們就使用use來對應的縮短命名空間。這也是use在PHP中的作用。下面我們就來為大家介紹一下PHP中use的用法。
推薦教學:PHP影片教學
#1、new類別時,最前面不需要用反斜杠。另外,use後沒有as時,縮短的命名空間預設為最後一個反斜線後的內容。
namespace animal\dog; class Life{ function __construct(){ echo 'dog life!'; } } namespace animal\cat; class Life{ function __construct(){ echo 'cat life!'; } } new Life(); //按照代码执行顺序,这里默认animal\cat这个命名空间 new \animal\dog\Life(); //A use animal\dog; //a new dog\Life(); //B use animal\dog as d; //b new d\Life();
透過A、B行程式碼比較,需要注意:
使用use後,new類別時,最前面沒有反斜線。
沒使用use時,命名空間最前面有反斜杠
透過a、b行程式碼比較,可以理解:
use後沒有as時,縮短的命名空間預設為最後一個反斜線後的內容。如上的:
use animal\dog;
相當於
use animal\dog as dog;
2.namespace後面不建議加類別名,但use後面可以。
//name.php namespace animal\dog; class Life{ function __construct(){ echo 'dog life!'; } } namespace animal\cat; class Life{ function __construct(){ echo 'cat life!'; } } use animal\dog\Life as dog; new dog();
如上所示,use後面加上類別名稱後,就相當於把類別改了個名稱:由Life改為dog了。
上面不用as dog就會報錯:
Fatal error: Cannot use animal\dog\Life as Life because the name is already in use
因為cat下也有個一樣名稱的Life類別。
可以理解為,使用use後,這個暱稱對應的類別只能歸當前命名空間佔有,其它命名空間下不允許存在該類別。
//name.php namespace animal\dog; class Life{ function __construct(){ echo 'dog life!'; } } class Dog{ function __construct(){ echo 'dog in dog!'; } } namespace animal\cat; // class Dog{ // function __construct(){ // echo 'dog in cat!'; // } // } class Life{ function __construct(){ echo 'cat life!'; } } use animal\dog; new dog\Dog();
如上,使用了
use animal\dog; cat
透過上面程式碼,我想使用use的目的效果(縮短命名空間名稱)就很明顯了。
簡單總結一下:
use就是起小名的作用,不論寫起來還是說起來都可以省不少事兒。
以上是php中use的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!