【发布时间】:2013-01-13 18:37:13
【问题描述】:
我正在开发一个将对象转换为字符串的小函数。如果对象具有作为数组的值,这很容易。但我希望这个函数能够工作,即使我的对象或数组有一些值作为另一个对象或数组。我把它弄得很粗糙,所以请专家帮忙,让每个人都整洁。
我的功能:
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
-
我刚刚尝试了 json_encode,但它返回的内容无法写入文件。谢谢你,但忘了它,伙计。人们认为这不是一个普遍的问题。所以..
标签: php arrays string object human-readable