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