欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

PHP命名空間(Namespace)的使用詳解_PHP教程

編輯Tag賺U幣

推薦:php中判斷數組是一維,二維,還是多維的解決方法
下面實例介紹了,在php中,判斷數組是一維,二維,還是多維的解決方法。需要的朋友參考下

對于命名空間,官方文檔已經說得很詳細[],我在這里做了一下實踐和總結。

命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數或者類出現相同的名字,否則會產生一個致命的錯誤。這種情況下只要避免命名重復就可以解決,最常見的一種做法是約定一個前綴。

例:項目中有兩個模塊:article和message board,它們各自有一個處理用戶留言的類Comment。之后我可能想要增加對所有用戶留言的一些信息統計功能,比如說我想得到所有留言的數量。這時候調用它們Comment提供的方法是很好的做法,但是同時引入各自的Comment類顯然是不行的,代碼會出錯,在另一個地方重寫任何一個Comment也會降低維護性。那這時只能重構類名,我約定了一個命名規則,在類名前面加上模塊名,像這樣:Article_Comment、MessageBoard_Comment

可以看到,名字變得很長,那意味著以后使用Comment的時候會寫上更多的代碼(至少字符多了)。并且,以后如果要對各個模塊增加更多的一些整合功能,或者是互相調用,發生重名的時候就需要重構名字。當然在項目開始的時候就注意到這個問題,并規定命名規則就能很好的避免這個問題。另一個解決方法可以考慮使用命名空間。


注明:

本文提到的常量:PHP5.3開始const關鍵字可以用在類的外部。const和define都是用來聲明常量的(它們的區別不詳述),但是在命名空間里,define的作用是全局的,而const則作用于當前空間。我在文中提到的常量是指使用const聲明的常量。


基礎
命名空間將代碼劃分出不同的空間(區域),每個空間的常量、函數、類(為了偷懶,我下邊都將它們稱為元素)的名字互不影響, 這個有點類似我們常常提到的‘封裝'的概念。

創建一個命名空間需要使用namespace關鍵字,這樣:

復制代碼 代碼如下:m.ghpqjb.com

<?php

//創建一個名為'Article'的命名空間
namespace Article;

?>


要注意的是,當前腳本文件的第一個命名空間前面不能有任何代碼,下面的寫法都是錯誤的:
復制代碼 代碼如下:m.ghpqjb.com

//例一
//在腳本前面寫了一些邏輯代碼

<?php

$path = "/";

class Comment { }

namespace Article;

?>

//例二
//在腳本前面輸出了一些字符

<html></html>
<?php

namespace Article;

?>


為什么要說第一個命名空間呢?因為同一腳本文件中可以創建多個命名空間。

下面我創建了兩個命名空間,順便為這兩個空間各自添加了一個Comment類元素:

復制代碼 代碼如下:m.ghpqjb.com

<?php

//創建一個名為'Article'的命名空間
namespace Article;

//此Comment屬于Article空間的元素
class Comment { }


//創建一個名為'MessageBoard'的命名空間
namespace MessageBoard;

//此Comment屬于MessageBoard空間的元素
class Comment { }
?>


在不同空間之間不可以直接調用其它元素,需要使用命名空間的語法:
復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Article;

class Comment { }


namespace MessageBoard;

class Comment { }

//調用當前空間(MessageBoard)的Comment類
$comment = new Comment();

//調用Article空間的Comment類
$article_comment = new \Article\Comment();

?>


可以看到,在MessageBoard空間中調用article空間里的Comment類時,使用了一種像文件路徑的語法: \空間名\元素名

除了類之外,對函數和常量的用法是一樣的,下面我為兩個空間創建了新的元素,并在MessageBoard空間中輸出了它們的值。

復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Article;

const PATH = '/article';

function getCommentTotal() {
return 100;
}

class Comment { }


namespace MessageBoard;

const PATH = '/message_board';

function getCommentTotal() {
return 300;
}

class Comment { }

//調用當前空間的常量、函數和類
echo PATH; ///message_board
echo getCommentTotal(); //300
$comment = new Comment();

//調用Article空間的常量、函數和類
echo \Article\PATH; ///article
echo \Article\getCommentTotal(); //100
$article_comment = new \Article\Comment();

?>


然后我的確得到了Article空間的元素數據。


子空間
命名空間的調用語法像文件路徑一樣是有道理的,它允許我們自定義子空間來描述各個空間之間的關系。

抱歉我忘了說,article和message board這兩個模塊其實都是處于同一個blog項目內。如果用命名空間來表達它們的關系,是這樣:

復制代碼 代碼如下:m.ghpqjb.com

<?php

//我用這樣的命名空間表示處于blog下的article模塊
namespace Blog\Article;

class Comment { }


//我用這樣的命名空間表示處于blog下的message board模塊
namespace Blog\MessageBoard;

class Comment { }

//調用當前空間的類
$comment = new Comment();

//調用Blog\Article空間的類
$article_comment = new \Blog\Article\Comment();

?>


而且,子空間還可以定義很多層次,比如說 Blog\Article\Archives\Date


公共空間
我有一個common_inc.php腳本文件,里面有一些好用的函數和類:

復制代碼 代碼如下:m.ghpqjb.com

<?php

function getIP() { }

class FilterXSS { }

?>


在一個命名空間里引入這個腳本,腳本里的元素不會歸屬到這個命名空間。如果這個腳本里沒有定義其它命名空間,它的元素就始終處于公共空間中:
復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog\Article;

//引入腳本文件
include './common_inc.php';

$filter_XSS = new FilterXSS(); //出現致命錯誤:找不到Blog\Article\FilterXSS類

$filter_XSS = new \FilterXSS(); //正確

?>


調用公共空間的方式是直接在元素名稱前加 \ 就可以了,否則PHP解析器會認為我想調用當前空間下的元素。除了自定義的元素,還包括PHP自帶的元素,都屬于公共空間。

要提一下,其實公共空間的函數和常量不用加 \ 也可以正常調用(不明白PHP為什么要這樣做),但是為了正確區分元素,還是建議調用函數的時候加上 \


名稱術語
在說別名和導入之前,需要知道關于空間三種名稱的術語,以及PHP是怎樣解析它們的。官方文檔說得非常好,我就直接拿來套了。

1.非限定名稱,或不包含前綴的類名稱,例如 $comment = new Comment();。如果當前命名空間是Blog\Article,Comment將被解析為Blog\Article\Comment。如果使用Comment的代碼不包含在任何命名空間中的代碼(全局空間中),則Comment會被解析為Comment。

2.限定名稱,或包含前綴的名稱,例如 $comment = new Article\Comment();。如果當前的命名空間是Blog,則Comment會被解析為Blog\Article\Comment。如果使用Comment的代碼不包含在任何命名空間中的代碼(全局空間中),則Comment會被解析為Comment。

3.完全限定名稱,或包含了全局前綴操作符的名稱,例如 $comment = new \Article\Comment();。在這種情況下,Comment總是被解析為代碼中的文字名(literal name)Article\Comment。

其實可以把這三種名稱類比為文件名(例如 comment.php)、相對路徑名(例如 ./article/comment.php)、絕對路徑名(例如 /blog/article/comment.php),這樣可能會更容易理解。

我用了幾個示例來表示它們:

復制代碼 代碼如下:m.ghpqjb.com

<?php

//創建空間Blog
namespace Blog;

class Comment { }

//非限定名稱,表示當前Blog空間
//這個調用將被解析成 Blog\Comment();
$blog_comment = new Comment();

//限定名稱,表示相對于Blog空間
//這個調用將被解析成 Blog\Article\Comment();
$article_comment = new Article\Comment(); //類前面沒有反斜桿\

//完全限定名稱,表示絕對于Blog空間
//這個調用將被解析成 Blog\Comment();
$article_comment = new \Blog\Comment(); //類前面有反斜桿\

//完全限定名稱,表示絕對于Blog空間
//這個調用將被解析成 Blog\Article\Comment();
$article_comment = new \Blog\Article\Comment(); //類前面有反斜桿\


//創建Blog的子空間Article
namespace Blog\Article;

class Comment { }

?>


其實之前我就一直在使用非限定名稱和完全限定名稱,現在它們終于可以叫出它們的名稱了。


別名和導入
別名和導入可以看作是調用命名空間元素的一種快捷方式。PHP并不支持導入函數或常量。

它們都是通過使用use操作符來實現:

復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog\Article;

class Comment { }


//創建一個BBS空間(我有打算開個論壇)
namespace BBS;

//導入一個命名空間
use Blog\Article;
//導入命名空間后可使用限定名稱調用元素
$article_comment = new Article\Comment();

//為命名空間使用別名
use Blog\Article as Arte;
//使用別名代替空間名
$article_comment = new Arte\Comment();

//導入一個類
use Blog\Article\Comment;
//導入類后可使用非限定名稱調用元素
$article_comment = new Comment();

//為類使用別名
use Blog\Article\Comment as Comt;
//使用別名代替空間名
$article_comment = new Comt();

?>


我注意到,如果導入元素的時候,當前空間有相同的名字元素將會怎樣?顯然結果會發生致命錯誤。

例:

復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog\Article;

class Comment { }


namespace BBS;

class Comment { }

Class Comt { }


//導入一個類
use Blog\Article\Comment;
$article_comment = new Comment(); //與當前空間的Comment發生沖突,程序產生致命錯誤

//為類使用別名
use Blog\Article\Comment as Comt;
$article_comment = new Comt(); //與當前空間的Comt發生沖突,程序產生致命錯誤

?>


動態調用
PHP提供了namespace關鍵字和__NAMESPACE__魔法常量動態的訪問元素,__NAMESPACE__可以通過組合字符串的形式來動態訪問:
復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog\Article;

const PATH = '/Blog/article';

class Comment { }


//namespace關鍵字表示當前空間
echo namespace\PATH; ///Blog/article
$comment = new namespace\Comment();

//魔法常量__NAMESPACE__的值是當前空間名稱
echo __NAMESPACE__; //Blog\Article
//可以組合成字符串并調用
$comment_class_name = __NAMESPACE__ . '\Comment';
$comment = new $comment_class_name();

?>


字符串形式調用問題

上面的動態調用的例子中,我們看到了字符串形式的動態調用方式,如果要使用這種方式要注意兩個問題。

1. 使用雙引號的時候特殊字符可能被轉義

復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog\Article;

class name { }

//我是想調用Blog\Article\name
$class_name = __NAMESPACE__ . "\name"; //但是\n將被轉義為換行符

$name = new $class_name(); //發生致命錯誤

?>


2. 不會認為是限定名稱

PHP在編譯腳本的時候就確定了元素所在的空間,以及導入的情況。而在解析腳本時字符串形式調用只能認為是非限定名稱和完全限定名稱,而永遠不可能是限定名稱。

復制代碼 代碼如下:m.ghpqjb.com

<?php

namespace Blog;

//導入Common類
use Blog\Article\Common;
//我想使用非限定名稱調用Blog\Article\Common
$common_class_name = 'Common';
//實際會被當作非限定名稱,也就表示當前空間的Common類,但我當前類沒有創建Common類
$common = new $common_class_name(); //發生致命錯誤:Common類不存在

//我想使用限定名稱調用Blog\Article\Common
$common_class_name = 'Article\Common';
//實際會被當作完全限定名稱,也就表示Article空間下的Common類,但我下面只定義了Blog\Article空間而不是Article空間
$common = new $common_class_name(); //發生致命錯誤:Article\Common類不存在


namespace Blog\Article;

class Common { }

?>


總結
我對PHP的命名空間剛剛接觸,也不能隨便給一些沒有實踐的建議。我個人認為命名空間的作用和功能都很強大,如果要寫插件或者通用庫的時候再也不用擔心重名問題。不過如果項目進行到一定程度,要通過增加命名空間去解決重名問題,我覺得工作量不會比重構名字少。也不得不承認它的語法會對項目增加一定的復雜度,因此從項目一開始的時候就應該很好的規劃它,并制定一個命名規范。

分享:基于PHP 面向對象之成員方法詳解
本篇文章是基于PHP 面向對象之成員方法詳解。需要的朋友參考下

來源:模板無憂//所屬分類:PHP教程/更新時間:2013-05-05
相關PHP教程
天堂va久久久噜噜噜久久va| 欧美性生交xxxxx久久久| 色偷偷88888欧美精品久久久| 日韩欧美国产二区| 亚洲区一区二区三| 秋霞影院一区| 99视频在线观看一区三区| 日韩精品亚洲元码| 亚洲精品成人三区| 免费在线观看一级片| 色橹橹欧美在线观看视频高清 | 国产精品综合视频| 亚洲国产欧美在线成人app| 欧美日韩三区四区| 中文字幕另类日韩欧美亚洲嫩草| 91成人在线精品视频| 2017欧美狠狠色| 久久久97精品| 内射国产内射夫妻免费频道| 亚洲一级视频在线观看| 在线国产欧美| 欧美日韩久久久| 国产精品成人一区二区三区| 日韩福利在线视频| 精品福利网址导航| 国产精品乱码妇女bbbb| 97香蕉久久夜色精品国产| 国产3p在线播放| 天天摸天天碰天天爽天天弄| 狠狠网亚洲精品| 亚洲男女性事视频| 成人av在线播放观看| 超碰在线免费97| 国产亚洲在线观看| 欧美一区二区三区视频免费| 日韩精品一区二区三区四区五区| 精品无码人妻一区二区三区品| 日韩精品欧美激情一区二区| 亚洲成人一区在线| 91免费版网站入口| 日本高清黄色片| 伊人春色之综合网| 亚洲国产婷婷综合在线精品| 91久久精品国产91久久性色| 高清国产在线观看| 要久久爱电视剧全集完整观看| 一区二区三区四区不卡在线 | 老太脱裤让老头玩ⅹxxxx| 一级全黄裸体免费视频| 日韩黄色免费电影| 日韩精品中文字幕久久臀| 黄色一级片国产| 国产农村老头老太视频| 麻豆精品在线看| 亚洲激情小视频| 免费人成在线观看视频播放| 99国产精品欲| 国产综合成人久久大片91| 在线不卡国产精品| 亚洲天堂av线| 日本国产欧美| 中文字幕 久热精品 视频在线 | 91精品一区国产高清在线gif| 在线精品视频一区二区三四| 欧美中日韩一区二区三区| 四虎成人在线观看| 久久亚洲综合| 国产亚洲人成a一在线v站| 欧美少妇性生活视频| 免费欧美电影| 国产午夜精品福利| 国产成人在线亚洲欧美| 国产精品久久免费观看| 欧美激情另类| 7777精品伊人久久久大香线蕉完整版 | 久久久久国产视频| 国产xxxxxxxxx| 免费电影一区二区三区| 色老头久久综合| 欧美日本亚洲| 最近中文字幕av| 国产一区不卡精品| 欧美激情一区二区三区久久久 | 中文字幕日韩高清在线| 亚洲电影中文字幕在线观看| 久久av一区二区三区亚洲| 国产一级淫片a视频免费观看| 久久午夜电影| 日韩在线观看成人| 又黄又爽又色的视频| 哺乳挤奶一区二区三区免费看| 亚洲国产一区二区在线播放| 久久riav| 国产又大又长又粗| 成人夜色视频网站在线观看| 欧美一级高清免费| 亚洲毛片亚洲毛片亚洲毛片| 欧美69视频| 日韩精品视频观看| www.这里只有精品| 动漫视频在线一区| 欧美性生活影院| 日本一级黄视频| 性感美女一级片| 中文字幕亚洲欧美在线不卡| 爱情岛论坛亚洲入口| 免费的毛片视频| 国产在线视频不卡二| 午夜精品久久久久久99热软件| a毛片毛片av永久免费| 综合激情视频| 亚洲人成电影网站| 无码人妻丰满熟妇区毛片蜜桃精品| 天天做夜夜做人人爱精品 | 亚洲第一天堂影院| 国产精品日韩成人| 国产精品免费一区二区三区在线观看| 无码人妻精品一区二区50| 国产成a人亚洲| 国产精品video| 精品在线视频免费观看| 免费成人av在线| 91高清视频免费| jizz亚洲少妇| 日本欧美一区二区三区乱码| 久久久噜噜噜久噜久久| 久久亚洲AV无码专区成人国产| 国产精品豆花视频| 少妇精69xxtheporn| 人妻 日韩 欧美 综合 制服| 天天做天天爱综合| 永久免费精品影视网站| 艳妇乳肉亭妇荡乳av| 欧美一区91| 在线观看欧美视频| 女人被狂躁c到高潮| 国内精品久久久久久久97牛牛| 中文字幕无线精品亚洲乱码一区| 五月婷婷综合在线观看| 亚洲天堂偷拍| 欧美成人全部免费| 99精品中文字幕| 日韩精品一二三四| 欧美性做爰毛片| 五月天综合在线| 丰满放荡岳乱妇91ww| 91影院在线免费观看视频| 久久精品偷拍视频| 久久久精品综合| 精品伊人久久大线蕉色首页| 亚洲精品一区二区口爆| 一区二区三区av电影| 黄色一级片网址| 国产精品第一国产精品| 91久久国产综合久久| 夫妻免费无码v看片| 奇米777国产一区国产二区| 亚洲第一精品福利| www.555国产精品免费| 国产一区二区三区四区老人| 九九热在线精品视频| 中文字幕电影av| 国产精品1区2区| 99热99热| 丰满少妇在线观看bd| 亚洲国产精品久久久久婷婷884| av在线免费观看国产| 中文字幕区一区二区三| 亚洲成人精品久久| 黄色网址在线视频| 日韩精品免费视频人成| 国产精品免费一区二区三区都可以| 中文字幕手机在线视频| 欧美国产精品专区| 亚洲一区二区三区乱码| 国产精品一区二区三区av| 欧美一级午夜免费电影| 四虎国产精品免费| 国产一区二区三区的电影| 国产91热爆ts人妖在线| 中文字幕在线观看高清| 亚洲欧美一区二区三区久本道91 | 日韩精品xxxx| 狠狠操综合网| 日韩专区中文字幕| 免费在线观看av网址| 久久综合视频网| 天天综合狠狠精品| 91成人精品在线| 精品视频—区二区三区免费| 国产欧美一区二区三区在线观看视频| 久久精品国产亚洲一区二区三区| 91免费综合在线| 天堂av2024| 欧美日韩一级片在线观看| 古装做爰无遮挡三级聊斋艳谭| 亚洲久色影视| 国产美女精品视频| 内射无码专区久久亚洲| 欧洲中文字幕精品| 老司机av网站| 日韩精品高清不卡| 亚洲最大福利网站| 成人性生活av| 欧美一区二区三区免费大片| 日本japanese极品少妇| 久久99九九99精品| 精品无人乱码一区二区三区的优势 | 日韩av电影在线播放| 一本大道伊人av久久综合| 五月综合激情网| 极品粉嫩美女露脸啪啪| 午夜综合激情| 97人人澡人人爽| 999国产精品亚洲77777| 亚洲精品一区二区精华| 中文字幕第69页| 久久青草欧美一区二区三区| 五月天激情图片| 激情五月综合| 国内精品久久久久久久久| 夜夜嗨aⅴ一区二区三区| 色综合久久综合中文综合网| 亚洲av毛片在线观看| 日本特黄久久久高潮| 久久精品国产99精品国产亚洲性色| 日本国产亚洲| 亚洲片在线资源| 国产无套在线观看| 一区二区三区在线视频免费观看 | 国产一区啦啦啦在线观看| 久久综合一区| 鲁大师精品99久久久| 欧美成人免费一级人片100| 亚洲天堂aaa| 色琪琪一区二区三区亚洲区| avtt香蕉久久| 岛国精品在线观看| 国产1区2区3区中文字幕| 香蕉视频官网在线观看日本一区二区| 国产精品第七十二页| 成人直播视频| 日韩高清av一区二区三区| 日本三级网站在线观看| 亚洲一级片在线观看| 中文字幕在线观看视频www| 精品一区二区三区免费毛片爱| 日本黑人久久| 狠狠色狠狠色综合婷婷tag| 97在线免费视频| 五月天婷婷视频| 日韩av中文字幕在线免费观看 | 中文字幕一区2区3区| 色香色香欲天天天影视综合网| 特级西西人体4444xxxx| 99精品久久99久久久久| 极品美女扒开粉嫩小泬| 亚洲三级毛片| 精品九九九九| 一本色道久久综合狠狠躁的番外| 欧美在线免费视频| 亚洲av片在线观看| 亚洲色图五月天| jizz国产在线| 欧美人动与zoxxxx乱| 91精品少妇一区二区三区蜜桃臀| 亚洲情趣在线观看| 美女流白浆视频| av日韩在线网站| www.com毛片| 亚洲永久字幕| 日韩一本精品| 五月久久久综合一区二区小说| 91久久精品一区| 91精品短视频| 欧美一级大片在线观看| 伦一区二区三区中文字幕v亚洲| 日韩中文字幕在线| 亚洲成人中文字幕在线| 精品国产人成亚洲区| 男人日女人网站| 欧美色图第一页| 成人在线观看小视频| 亚洲国产精品久久久久秋霞影院 | 三级黄色录像视频| 亚洲综合免费观看高清完整版在线| 午夜影院福利社| 久久亚洲影视婷婷| 国产精品自拍视频在线| 国产成人丝袜美腿| 无码人妻h动漫| 久久成人精品无人区| 亚洲国产精品成人天堂| 日韩电影在线免费| 波多野结衣 作品| 午夜在线一区| 日韩不卡一二区| 免费在线播放第一区高清av| 亚洲国产精品日韩| 伊人蜜桃色噜噜激情综合| 日韩高清在线播放| 黄色欧美成人| 亚洲欧美日韩另类精品一区二区三区 | 中国女人做爰视频| 日韩高清不卡一区二区三区| 隔壁人妻偷人bd中字| 免费观看成人鲁鲁鲁鲁鲁视频| 800av在线免费观看| 免费欧美在线视频| 激情小视频网站| 韩国精品在线观看 | 精品一区二区三区蜜桃| 欧美日韩性生活片| 国产精品一二三区在线| 91在线视频观看免费| 成人久久久精品乱码一区二区三区| 国产三级日本三级在线播放| 成人做爰69片免费看网站| 中文字幕天天干| 91视频xxxx| 亚洲精品成人无码毛片| 国产精品白丝在线| 中文字幕免费视频| 黄色精品一区二区| 久久午夜无码鲁丝片午夜精品| 欧美日韩视频在线一区二区| 国产精品视频久久久久久久| 欧美一区二区福利在线| 波多野结衣黄色| 亚洲女人天堂视频| 少妇高潮一区二区三区69| 欧美疯狂做受xxxx高潮| 欧美成人家庭影院| 国产精品入口免费视频一| 国产精品亚洲人成在99www| 国产日韩在线一区二区三区| 欧美日韩一区自拍| 黄瓜视频免费观看在线观看www| 日本不卡免费在线视频| 乱子伦视频在线看| 久久色成人在线| a天堂视频在线观看| 亚洲成av人片一区二区梦乃| 精品无码久久久久久久久| 日韩三级电影网址| 精品免费久久久| 久久99热这里只有精品国产| 精品国产乱码久久久久久樱花| 国产在线高清精品| 99久久影视| 精品国产无码在线| 黄色精品一二区| 欧美精品色视频| 一区二区三区四区视频精品免费 | 偷窥国产亚洲免费视频| 久草福利资源在线观看| 精品久久久久99| 欧美特级特黄aaaaaa在线看| 午夜精品久久久久久99热软件| 国产精品一区二区中文字幕| 国产一区二区中文字幕免费看| 99精品国产一区二区青青牛奶| 国产精品国产对白熟妇| 97久久超碰精品国产| 极品白嫩丰满美女无套| 91国偷自产一区二区开放时间| 色老头在线视频| 日韩在线视频网站| 日本精品视频| 国产精品久久精品国产| 国产精品毛片| 久久无码高潮喷水| 国产精品三级久久久久三级| 日韩免费av一区| 日韩欧美不卡在线观看视频| 丰满人妻一区二区| 欧美有码在线观看视频| 久久不见久久见国语| 中文字幕av日韩精品| 国产伦精品一区二区三区视频青涩| 欧美69精品久久久久久不卡| 婷婷久久综合九色国产成人 | 欧美一区二区三区爱爱| 亚洲第一页视频| 日本伊人精品一区二区三区介绍| 日韩在线第七页| 韩国无码av片在线观看网站| 91丨porny丨在线| 成人午夜免费影院| 精品捆绑美女sm三区| 肉色欧美久久久久久久免费看| 国产精品专区一| 国产精品magnet| 91淫黄看大片| 一区二区三区中文字幕| 在线精品免费视| 久久伊人91精品综合网站| 日韩精品社区| 欧美aaa在线观看| 久久久午夜电影|