试图用对象理解数组并使用它

时间:2014-07-01 12:05:39

标签: php arrays function object

尝试获取基于Web的SONOS php-controller(请参阅git source)以便同时学习PHP。正如所料,我从一开始就遇到了麻烦。

函数detect()创建一个包含对象的数组。

$var = SonosPHPController::detect();
var_dump ($var);

array(3) {
    [0]=> object(SonosPHPController)#3 (4) { ["Sonos_IP":protected]=> NULL ["_raw":protected]=> array(0) { } ["IP"]=> string(13) "192.168.1.137" ["PORT"]=> int(1400) }
    [1]=> object(SonosPHPController)#7 (4) { ["Sonos_IP":protected]=> NULL ["_raw":protected]=> array(0) { } ["IP"]=> string(13) "192.168.1.134" ["PORT"]=> int(1400) }
    [2]=> object(SonosPHPController)#6 (4) { ["Sonos_IP":protected]=> NULL ["_raw":protected]=> array(0) { } ["IP"]=> string(13) "192.168.1.232" ["PORT"]=> int(1400) }
}

如何将其转换为有用的内容,例如将每个IP分配给常量,以便在其他函数中使用它们?

1 个答案:

答案 0 :(得分:0)

您可以执行类似

的操作
$ipArray = array();

foreach($var as $item) {
    $ipArray[] = $item->IP;
}

var_dump($ipArray);

输出

array(3) {
  [0] => string(13) "192.168.1.137"
  [1] => string(13) "192.168.1.134"
  [2] => string(13) "192.168.1.232"
}

或者你可以这样做

$firstSonosController  = $var[0];
$secondSonosController = $var[1];
$thirdSonosController  = $var[2];

然后你可以玩它

echo $firstSonosController->IP;    // outputs 192.168.1.137
echo $secondSonosController->PORT; // outputs 1400
...