Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 混合数组和对象_Php_Arrays_Object - Fatal编程技术网

Php 混合数组和对象

Php 混合数组和对象,php,arrays,object,Php,Arrays,Object,我对将数组与对象混合感到很遗憾,但我不确定是否应该这样做 // Populate array foreach($participants as $participant){ $participants[$key]['contestant'] = new Contestant($participant); $participants[$key]['brand'] = new Brand($brand); $key++; } [...] // Print array forea

我对将数组与对象混合感到很遗憾,但我不确定是否应该这样做

// Populate array
foreach($participants as $participant){
   $participants[$key]['contestant'] = new Contestant($participant);
   $participants[$key]['brand'] = new Brand($brand);
   $key++;
}

[...]

// Print array
foreach($participants as $participant){
   print "Name: " . $participant['contestant']->name;
   print "Nationality: " . $participant['contestant']->nationality;
}
我对
$climater['climater']->name
部分感到不舒服。如果只使用对象,我会感觉更好


事实上,混合对象和数组被认为是一种不好的做法,还是我对其他人都认为不错的东西着迷?

你在不必要地担心自己。在其他语言中,将序列/映射与对象混合是相当常见的。当您不知道元素的数量或只存在一组“ragtag”元素时,数组是有用的;当您确切知道元素的数量时,对象是有用的,并且所说的元素每个都有特定的用途。

您不必要地担心自己。在其他语言中,将序列/映射与对象混合是相当常见的。当您不知道元素的数量或只存在一组“ragtag”元素时,数组很有用;当您确切知道元素的数量时,对象很有用,并且所说的元素每个都有特定的用途。

我觉得很好。如果数组有意义,请使用数组。如果对象有意义,请使用对象


然而,您可能觉得参与者作为一个对象更有意义,从这个相对较小的代码示例来看,它可能只是一个对象。如果是这样,写一个快速的参与者课程。如果这感觉开销太大,那么不要担心。在这一点上,这是个人偏好,因为您的代码实际上是有效的。这都是关于你将来更愿意使用哪个代码库的问题。

我觉得很好。如果数组有意义,请使用数组。如果对象有意义,请使用对象


然而,您可能觉得参与者作为一个对象更有意义,从这个相对较小的代码示例来看,它可能只是一个对象。如果是这样,写一个快速的参与者课程。如果这感觉开销太大,那么不要担心。在这一点上,这是个人偏好,因为您的代码实际上是有效的。这都是关于你将来喜欢使用哪种代码库的问题。

如果你对
$participant['competitor']->名称感到不舒服,那么你可以使用
ArrayObject
$participant->competitor->name
@Gordon:太好了,谢谢!如果你对
$participant['competitor']->name
感到不舒服,那么你可以使用
ArrayObject
$participant->competitor->name
@Gordon:太好了,谢谢!