php中use的用法

2020-07-16 10:05:47

  在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其它相關文章!