在工作中进行大量重构的中间,我希望引入stdClass *作为从函数返回数据的一种方式,并且我试图找到非主观论据来支持我的决定。
是否有任何情况下最好使用一种而不是另一种?
使用stdClass而不是数组有什么好处?
有人会说,函数必须尽可能少且特定,才能返回一个值。 我决定使用stdClass是暂时的,因为从长远来看,我希望为每个进程找到正确的Value Objects。
通常的方法是
$person -> name = "John" -> surname = "Miller" -> address = "123 Fake St"
"John Miller" "Peter Miller" "Josh Swanson" "Harry Miller"
$person[0] -> name = "John" -> surname = "Miller" -> address = "123 Fake St" $person[1] -> name = "Peter" -> surname = "Miller" -> address = "345 High St"
对象不适合保存数据列表,因为您始终需要一个密钥来寻址它们。数组可以同时实现两个功能-容纳任意列表和数据结构。
因此,如果需要,您可以在第一个和第三个示例中对对象使用关联数组。我会说,这实际上只是样式和偏好的问题。
@Deceze在何时使用对象方面有很多好处(验证,类型检查和将来的方法)。