2017-09-13 51 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

相關問題