2014-07-01 38 views
0

嘗試獲取基於Web的SONOS php控制器(請參閱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一個常數,所以我可以在其他功能使用它們有用嗎?

+2

「有用的東西」是什麼意思?你將它作爲一個SonosPHPController對象,所以它已經是非常有用的東西了(否則你可能不會使用它 - 你會嗎?) – kero

回答

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 
...