/**
  * @see EPSInterface::listSites()
  */
 public function listSites($sessionId, $type, $name, $language)
 {
     try {
         $listSitesStdObject = new stdClass();
         $listSitesStdObject->sessionId = $sessionId;
         $listSitesStdObject->type = $type;
         $listSitesStdObject->name = $name;
         $listSitesStdObject->language = $language;
         $response = parent::listSites($listSitesStdObject);
         $arrListSites = array();
         if (isset($response->return)) {
             $arrStdSites = $response->return;
             if (is_array($arrStdSites)) {
                 for ($i = 0; $i < count($arrStdSites); $i++) {
                     $arrListSites[$i] = new ResultSite($arrStdSites[$i]);
                 }
             } else {
                 $arrListSites[0] = new ResultSite($arrStdSites);
             }
         }
         return $arrListSites;
     } catch (SoapFault $sf) {
         throw new ServerException($sf);
     }
 }
<?php

$soapURL = "http://localhost:8080/ws/services/AssetOperationService?wsdl";
$client = new SoapClient($soapURL, array('trace' => 1, 'location' => str_replace('?wsdl', '', $soapURL)));
$auth = array('username' => 'admin', 'password' => 'admin');
$listSitesParams = array('authentication' => $auth);
$reply = $client->listSites($listSitesParams);
if ($reply->listSitesReturn->success == 'true') {
    $sites = $reply->listSitesReturn->sites->assetIdentifier;
    if (sizeof($sites) == 0) {
        $sites = array();
    } else {
        if (!is_array($sites)) {
            // For less than 2 eleements, the returned object isn't an array
            $sites = array($sites);
        }
    }
    echo "Sites:\r\n";
    foreach ($sites as $site) {
        echo $site->path->path . " (" . $site->id . ")\r\n";
    }
} else {
    echo "Error occurred when getting a list of sites: " . $reply->listSitesReturn->message;
}