我想知道何时必须使用PDO :: FETCH_CLASS,使用它的好处是什么,而不是使用像PDO :: FETCH_ASSOC这样的其他获取方法?
答案 0 :(得分:2)
这取决于您喜欢或需要的东西。
PDO::FETCH_ASSOC
使fetch返回一个关联数组。
PDO::FETCH_OBJ
类似,但返回带有属性的“匿名对象”。请注意,实际上是“匿名对象”is the wrong term,但PHP文档also uses it。它指的是从StdClass继承的对象。
PDO::FETCH_CLASS
是对此的变体。它不使用StdClass,而是创建特定(给定)类类型的对象,并尝试将列值映射到该对象的属性。
如果您不想使用StdClass,但想要使用“智能”对象,这非常有用。例如,如果你有一个带有FirstName和LastName的User表,你可以让PDO :: fetch返回一个User
对象,该对象实现一个返回连接的名字和姓氏的getFullName
方法。 StdClass不会有这种方法,你的数组也不会。
但是,如果您喜欢使用数组,则无需切换到其他两个数组。使用你最喜欢的。