2017-09-13 90 views
0

在PHP中,您可以使用ksort()按字母顺序对数组的键进行排序,但不能使用类对象。有没有一种方法来排序类对象的键? 这对于更快的本地开发调试非常有帮助,因为我知道当我输出一个类以供快速参考时,我在寻找什么。如何有效地对类对象的键(ksort)进行排序?

+0

对类进行排序是没有意义的,除非它具有类似数组的行为,然后通常的数组函数可以完成这项工作。 – Calimero

+0

步骤1)确定键,即字段名称(例如,经由反射),步骤2)对字段名称进行排序。 – localheinz

+0

@localheinz ...怎么样?我不会问这个问题,如果我知道实施它的时间有效的方式。 : - \ – John

回答

0

谢谢大家试图帮助评论。因为我只偶尔需要用于本地测试的调试这是少数几个可以接受的廉价(相对于负担得起或昂贵)答案的情况之一;我只是在视觉上确认类属性是否具有所需的值。在这种情况下,我正在调试和测试无论是否有夏令时的多个时区,因此加快调试过程对于节省时间非常重要。但是,如果某人对(并使用正确的术语)负担得起(适当)的方法按字母顺序对对象的属性进行排序,那么我很乐意测试并接受该答案。

$a = array(); 
foreach ($class_object as $k => $v) 
{ 
$a[$k] = $v; 
} 
ksort($a); 
echo '<section><pre style="font-size: 22px;">'; 
$a = print_r($a,1); 
echo htmlspecialchars($a).'</pre></section>'; 
+0

只是'var_dump($ class_object-> prop_name)'有什么问题? –

+0

@u_mulder我也有时需要确保多个属性相对于彼此设置。除了时区偏移之外,我还需要查看并确定夏时制是否生效。在调试的时候,为什么还要花时间输入一个特定的属性名称,当我可以有效地使用'print_r()'对象时?我的定义并不笨拙,所以这更容易,更快捷,有时我可以返回到无关的调试目的。我经常只是按照你在某些情况下所说的完成,调试是一个主观过程。 :-) – John

相关问题