2015-02-11 44 views
0

我想知道何時必須使用PDO :: FETCH_CLASS,以及使用它而不是使用其他獲取方法(如PDO :: FETCH_ASSOC)的好處是什麼?使用PDO :: FETCH_CLASS和何時使用它的好處

+1

你的其他獲取方法是什麼? – 2015-02-11 17:06:22

+0

like fetch_assoc – Kyo 2015-02-11 17:07:12

+0

哦,你的意思是你想知道使用「PDOStatement :: fetch(PDO :: FETCH_ASSOC)」或「PDOStatement :: fetch(PDO :: FETCH_OBJ)」的區別和好處嗎? – 2015-02-11 17:08:47

回答

2

這取決於你喜歡什麼或需要什麼。

PDO::FETCH_ASSOC使提取返回一個關聯數組。

PDO::FETCH_OBJ是類似的,但返回一個'匿名對象'的屬性。請注意,實際上'匿名對象'is the wrong term,但PHP文檔also uses it。它指的是從StdClass繼承的對象。

PDO::FETCH_CLASS是一個變化。它不使用StdClass,但創建特定(給定)類類型的對象,並嘗試將列值映射到該對象的屬性。

如果您不想使用StdClass,但希望使用「智能」對象,這非常有用。例如,如果您有一個帶有名字和姓氏的用戶表,則可以讓PDO :: fetch返回一個User對象,該對象實現一個返回連接的姓氏和名字的getFullName方法。 StdClass不會有這個方法,你的數組也不會。

但是,如果你喜歡使用數組,你不需要切換到其他任何兩個。使用你最喜歡的東西。

+0

因此,如果某些情況下我需要文章表中的一些信息,最好是使用assoc而不是將它提取到類中? – Kyo 2015-02-11 17:25:37

+0

這不是更好或更糟。這只是一個意見問題。你也可以使用。 – GolezTrol 2015-02-11 17:26:06

+0

我明白了,所以我們喜歡使用哪種風格? – Kyo 2015-02-11 17:27:41