我需要一些帮助.我有一个工作类,我可以使用foreach()来显示公共变量:
class MyClass {
public $a;
public $b;
function __construct($aX,$bX){
$this->a = $aX;
$this->b = $bX;
}
}
$class = new MyClass(3,5);
foreach($class as $key => $value) {
print "$key => $value</br>\n";
}
Run Code Online (Sandbox Code Playgroud)
生产:
a => 3
b => 5
Run Code Online (Sandbox Code Playgroud)
现在,当我想要一个MyClass数组时,我的问题出现了:
class MyClass
{
public $a;
public $b;
function __construct($aX,$bX){
$this->a = $aX;
$this->b = $bX;
}
}
$class = array(
"odd"=>new MyClass(3,5),
"even"=>new MyClass(2,4)
);
foreach($class as $key => $value) {
print "$key => $value</br>\n";
}
Run Code Online (Sandbox Code Playgroud)
生产:
Catchable fatal error: Object of class MyClass could not be converted to string...
Run Code Online (Sandbox Code Playgroud)
如何循环遍历$ class数组的所有元素?任何帮助都会很棒!
您的类没有实现__toString()方法,因此当您尝试打印时,PHP无法自动将MyClass转换为字符串:
foreach($class as $key => $value) {
^^^^-- odd or even
^^^^^^--- Object of type MyClass
print "$key => $value</br>\n";
^^^^^^--- try to output object in string context
Run Code Online (Sandbox Code Playgroud)
您需要添加一个ANOTHER循环来迭代类的成员:
foreach($class as $key => $myclass) {
foreach($myclass as $key2 => $val) {
echo ("$key2 => $val");
}
}
Run Code Online (Sandbox Code Playgroud)
...或者实现__toString()方法做你想要的任何obj->字符串转换.
| 归档时间: |
|
| 查看次数: |
8048 次 |
| 最近记录: |