如果我有一个对象数组:
$a = array($objA, $objB);
(每个对象都有一个__toString()
-method)
如何将所有数组元素都转换为字符串,以便该数组仅$a
包含其字符串表示形式,就不包含其他对象?是否有单线排列,还是必须手动遍历阵列?
如果我有一个对象数组:
$a = array($objA, $objB);
(每个对象都有一个__toString()
-method)
如何将所有数组元素都转换为字符串,以便该数组仅$a
包含其字符串表示形式,就不包含其他对象?是否有单线排列,还是必须手动遍历阵列?
Answers:
未经测试,但是应该这样做?
foreach($a as $key => $value) {
$new_arr[$key]=$value->__toString();
}
$a=$new_arr;
您是否正在寻求内爆?
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
我现在无法测试,但是您可以检查一下implode()
这样的阵列会发生什么吗?_toString应该被调用。
implode($array)
就能做到。
__toString()
生成的字符串保留在相应的数组元素中。
__toString()
包含,则不会,
。
有什么原因导致您无法执行以下操作?
$a = array(
(string) $objA,
(string) $objB,
);