作用:隔離程式碼,避免命名衝突
-
名稱空間分類:
- 非限定名稱空間(類比為 當前路徑)
- 限定名稱空間(類比為 相對路徑)
- 完全限定名稱空間(類比為 絕對路徑)
-
規則限制:
- 當前指令碼名稱空間前不能有任何程式碼
- 一個指令碼可以建立多個名稱空間
- 同一個名稱空間下,不能重複宣告類,同一個名稱空間可以使不同檔案,透過require引入即可
-
引入類
- use引入
- 5.6支援引入全域性常量和函式
別名作用: 別名用於避免衝突
<?php
namespace Article {
require("./demo4.php"); //引入其他檔案
use MessageBoard\Comment as MessageComment; //別名
use function MessageBoard\test; //引入函式
class Comment
{
public $title;
public $content;
public function __construct($title, $content)
{
$this->title = $title;
$this->content = $content;
}
public function getInfo()
{
echo $this->title.'--'.$this->content;echo "<br/>";
$message_comment = new MessageComment('use_message_comment_title', 'use_message_comment_content');
echo "<br/>";
echo '透過use引入'.$message_comment->title;echo "<br/>";
echo MessageComment::COMMENT;echo "<br/>";
echo APP;echo "<br/>";
test();echo "<br/>";
}
}
}
namespace MessageBoard {
define('APP', '常量MessageBoard');
function test(){
echo 'this is test';
}
class Comment
{
const COMMENT = '常量COMMENT';
public $title;
public $content;
public function __construct($title, $content)
{
$this->title = $title;
$this->content = $content;
}
public function getInfo()
{
echo $this->title.'--'.$this->content;echo "<br/>";
}
}
//當前路徑(非限定名稱)
$messageComment = new Comment('message_title','message_content');
$messageComment->getInfo();
//絕對路徑(完全限定名稱)
$articleConment = new \Article\Comment('article_title', 'article_content');
$articleConment->getInfo();
//相對路徑(限定名稱)
$articleConment = new Article\Comment('message_article_title', 'message_article_content');
$articleConment->getInfo();
//絕對路徑(完全限定名稱)
$articleConment1 = new \Article\Comment1('article_title1', 'article_content1');
$articleConment1->getInfo();
}
namespace MessageBoard\Article {
class Comment
{
public $title;
public $content;
public function __construct($title, $content)
{
$this->title = $title;
$this->content = $content;
}
public function getInfo()
{
echo $this->title.'--'.$this->content;echo "<br/>";
}
}
}
demo4.php Article 名稱空間內引入的檔案
<?php
namespace Article {
class Comment1
{
public $title;
public $content;
public function __construct($title, $content)
{
$this->title = $title;
$this->content = $content;
}
public function getInfo()
{
echo $this->title.'--'.$this->content;echo "<br/>";
}
}
}
複製程式碼,即可執行。 謝謝你的瀏覽,如有錯誤,歡迎指正哈!!!
本作品採用《CC 協議》,轉載必須註明作者和本文連結