Как и в предыдущем ответе, я предлагаю класс. Здесь я на самом деле назову класс и передам данные конструктору. Итерация по массиву может быть выполнена с помощью методов current
и next
:
class ResultSet {
private $array = [];
public $num_rows = 0;
public function __construct($data) {
$this->array = $data;
$this->num_rows = count($this->array);
}
public function fetch_assoc() {
$val = current($this->array);
next($this->array);
return $val;
}
}
До тех пор, пока она не будет исправлена. Вы бы поиграли с данными в следующем:
$result = new ResultSet([
["name"=>"Toby", "q1"=>"1"],
["name"=>"Phelps", "q1"=>"1"],
["name"=>"Davies", "q1"=>"1"],
["name"=>"Keith", "q1"=>"1"],
]);
Я не реализовал поддержку count($result)
, так как не думаю, что она поддерживается и в реальных наборах результатов mysqli. Вы получаете счет через ->num_rows
(как и вы).
Хотя это не очень удобно для предоставления конкретных примеров использования, здесь есть ссылка из MSDN, в которой перечислены все функции для привязок.
http://msdn.microsoft.com/en-us/library/ms730879.aspx
Вот неплохая блок-схема, которая также может помочь в выборе между ними.
Источник: http: //bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx
Here - хорошая общая статья, которую я использовал в прошлом.
http: / /mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx (или здесь на машине обратного хода, если ссылка больше не работает для вас).
net.pipe, быстрый и безопасный, потому что ваш веб-сервис недоступен из сети (обычно вы используете net .pipe для легкого взаимодействия со службой Windows).
http, вы будете использовать его по причине совместимости, если ваша веб-служба не использует HTTP, Silverlight или Flash не могут ее использовать (поскольку браузер фильтрует не-http пакеты, так как это делает брандмауэр).
net.tcp немного быстрее, потому что ваше мыльное сообщение не заключено в HTTP-запрос, но вы не можете вызвать свой веб-сервис с технологией RIA, и какой-то брандмауэр отбросит ваше сообщение.
Windows Communication Foundation (WCF) - это платформа для создания служб, обрабатывающих сообщения XML. WCF позволяет передавать сообщения с использованием различных транспортных протоколов (таких как HTTP, TCP и MSMQ) и с использованием различных представлений XML (таких как текст, двоичный код или MTOM, что обычно называется кодировкой сообщений в WCF.
Если вы хотите разместить много служб WCF на одном компьютере и хотите, чтобы они использовали общую память для обмена данными, используйте именованный канал => net.pipe, а затем используйте tcp для связи со службами WCF на разных компьютерах.
Конфигурация привязки nettcp фокусируется на создании стека каналов, который будет лучше работать в средах Windows, что дает вам отличный вариант для замены ваших различных инвестиций в удаленное взаимодействие COM + и .NET.
BasicHttpBinding был разработан для сценариев, в которых взаимодействие имеет первостепенное значение. В результате BasicHttpBinding использует HTTP для транспорта и текст для кодировки сообщения.