使用 PDO::FETCH_CLASS 有什么好处以及何时使用它
What is the benefit of using PDO::FETCH_CLASS and when to use it
我想知道我什么时候必须使用 PDO::FETCH_CLASS 以及使用它而不是使用像 PDO::FETCH_ASSOC 这样的其他获取方法有什么好处?
这取决于你喜欢或需要什么。
PDO::FETCH_ASSOC
使 fetch return 成为一个关联数组。
PDO::FETCH_OBJ
类似,但是 return 一个 'anonymous object' 具有属性。注意实际上 'anonymous object' is the wrong term, but the PHP documentation also uses it. It refers to an object that inherites from StdClass.
PDO::FETCH_CLASS
是它的变体。它不使用 StdClass,而是创建一个特定(给定)class 类型的对象,并尝试将列值映射到该对象的属性。
如果您不想使用 StdClass,而是想使用 'smart' 对象,这将很有用。例如,如果你有一个用户 table 有名字和姓氏,你可以让 PDO::fetch return 一个 User
对象实现 getFullName
方法 returns 串联的名字和姓氏。 StdClass 不会有这个方法,你的数组也不会。
但是,如果您喜欢使用数组,则无需切换到其他两个中的任何一个。用你最喜欢的。
我想知道我什么时候必须使用 PDO::FETCH_CLASS 以及使用它而不是使用像 PDO::FETCH_ASSOC 这样的其他获取方法有什么好处?
这取决于你喜欢或需要什么。
PDO::FETCH_ASSOC
使 fetch return 成为一个关联数组。
PDO::FETCH_OBJ
类似,但是 return 一个 'anonymous object' 具有属性。注意实际上 'anonymous object' is the wrong term, but the PHP documentation also uses it. It refers to an object that inherites from StdClass.
PDO::FETCH_CLASS
是它的变体。它不使用 StdClass,而是创建一个特定(给定)class 类型的对象,并尝试将列值映射到该对象的属性。
如果您不想使用 StdClass,而是想使用 'smart' 对象,这将很有用。例如,如果你有一个用户 table 有名字和姓氏,你可以让 PDO::fetch return 一个 User
对象实现 getFullName
方法 returns 串联的名字和姓氏。 StdClass 不会有这个方法,你的数组也不会。
但是,如果您喜欢使用数组,则无需切换到其他两个中的任何一个。用你最喜欢的。