首頁  >  文章  >  後端開發  >  php中use的用法是什麼

php中use的用法是什麼

angryTom
angryTom原創
2019-08-24 09:39:0211088瀏覽

php中use的用法是什麼

  在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn