Подтвердить что ты не робот

Что такое эквивалент С# "List <String>" в PHP?

Я работаю с API и прошу предоставить значение List <String>. Я пишу PHP и могу только найти этот тип на С#.

Является ли это массивом? Строка, разделенная запятыми?

4b9b3361

Ответ 1

PHP не имеет понятия общих типов.

Вы можете использовать array():

PHP

 $arr = array();  
 $arr[0] = 'foo';

эквивалент в С#

List<string> arr = new List<string>(); 
arr.Add("foo"); 

Ответ 2

Я думаю, что вы можете использовать простой массив:

$list = array('string1', 'string2', 'string3');

или же

$list = array();
$list[] = 'string1';
$list[] = 'string2';
$list[] = 'string3';

и т.п.

Проверьте http://www.php.net/manual/en/language.types.array.php для деталей.

Ответ 3

Является ли это массивом?

Да, это

Разделяемая запятыми строка?

Нет, это не

Ответ 4

PHP нетипизирован, поэтому вы можете использовать свой массив для всех типов переменных, используйте этот код:

$arr=array();

Ответ 5

Если вы вызываете SOAP, вам следует просто использовать класс PHP SoapClient, он отлично справляется с преобразованием типов, которые он видит в wsdl, в собственные php-структуры, обычно в массивы или часто в экземпляры объектов stdClass, что является типом php класс, который может хранить любое значение как свойство. Кроме того, вы можете сделать более интересные вещи, такие как tell php SoapClient для сопоставления типов возвращаемых данных с вашими собственными объектами php.

См. http://us2.php.net/SoapClient а также см. определение конструктора http://us2.php.net/manual/en/soapclient.soapclient.php, и один из вариантов, называемый classmap, объясняет, как вы можете сопоставить возвращаемые типы с вашими собственными классами. Существует также опция "typemap" для сопоставления типов возвращаемых данных для ваших собственных типов.

Ответ 6

Эта ветка старая, но я думаю, что код может помочь:

class ClientList implements IteratorAggregate {

   protected $data;

   public function __construct(Client ...$data){
      $this->data = $data;
   }

   public function getIterator(): Traversable {
      return new ArrayIterator($this->data);
   }

}

class Client {

}


$clients[] = new Client();
$clients[] = new Client();

$clientList = new ClientList(...$clients);

foreach($clientList as $client){
   var_dump($client);
}

Теперь, когда вы вставляете строку, число или что-то, что не является экземпляром Client, вы получите ошибку, и благодаря IteratorAggregate вы можете выполнять итерации по объекту ClientList.