Я работаю с API и прошу предоставить значение List <String>
. Я пишу PHP и могу только найти этот тип на С#.
Является ли это массивом? Строка, разделенная запятыми?
Я работаю с API и прошу предоставить значение List <String>
. Я пишу PHP и могу только найти этот тип на С#.
Является ли это массивом? Строка, разделенная запятыми?
PHP не имеет понятия общих типов.
Вы можете использовать array():
PHP
$arr = array();
$arr[0] = 'foo';
эквивалент в С#
List<string> arr = new List<string>();
arr.Add("foo");
Я думаю, что вы можете использовать простой массив:
$list = array('string1', 'string2', 'string3');
или же
$list = array();
$list[] = 'string1';
$list[] = 'string2';
$list[] = 'string3';
и т.п.
Проверьте http://www.php.net/manual/en/language.types.array.php для деталей.
Является ли это массивом?
Да, это
Разделяемая запятыми строка?
Нет, это не
PHP нетипизирован, поэтому вы можете использовать свой массив для всех типов переменных, используйте этот код:
$arr=array();
Если вы вызываете 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" для сопоставления типов возвращаемых данных для ваших собственных типов.
Эта ветка старая, но я думаю, что код может помочь:
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.