我正在處理將對象轉換爲字符串的小函數。如果對象具有值作爲數組很容易。但我希望這個函數能夠工作,即使我的對象或數組有一些值作爲另一個對象或數組。我讓它變得非常粗糙,所以專家們請幫助它使它爲每個人整理。從對象到人類可讀文本
我的功能:
function makeString($array)
{
$outval = "";
foreach($array as $key=>$value) {
if (is_object($value)) {
$arr = array();
$arr = get_object_vars($value);
foreach($arr as $key1=>$value1){
if(is_array($value1)) {
$outval .= "\t\t$key1\n";
$outval .= makeString($value1);
}
else {
$outval .= "\t$key1: $value1\n";
}
}
}
if(is_array($value)) {
$outval .= "\t$key\n";
$outval .= makeString($value);
}
else {
$outval .= "$key: $value\n";
}
}
return $outval;
}
這部分是我的函數裏面反覆出現:
...
if (is_object($value)) {
$arr = array();
$arr = get_object_vars($value);
foreach($arr as $key1=>$value1){
if(is_array($value1)) {
$outval .= "\t\t$key1\n";
$outval .= makeString($value1);
}
else {
$outval .= "\t$key1: $value1\n";
}
}
}
...
如果這裏$ VALUE1也是一個對象?即使我的對象在主對象內有許多其他對象或數組,也應該怎麼做才能使此函數正常工作。
爲什麼你會做到這一點,而不是僅僅使用json_encode?你也重新實現了一個內置函數:__toString – AD7six
我剛剛嘗試過json_encode,但它返回了一些不能寫入文件的東西。謝謝你,但忘了它的朋友。人們認爲這不是一個常見問題。所以.. – Kemal