オブジェクトを文字列に変換する小さな関数に取り組んでいます。オブジェクトが配列として値を持っている場合は簡単です。しかし、私のオブジェクトまたは配列が別のオブジェクトまたは配列としていくつかの値を持っている場合でも、この関数を機能させたいと思います。私はそれを非常に粗くしますので、専門家はそれを皆のために整頓するためにこれを助けてください。
私の機能:
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もオブジェクトである場合はどうなりますか?オブジェクトにメインオブジェクト内に他の多くのオブジェクトまたは配列がある場合でも、この関数を機能させるにはどうすればよいですか。