Вы не можете скрыть курсор мыши, когда он покидает ваше окно (или диалоговое окно), потому что он затем обрабатывается менеджером окон вашей ОС. Обходной путь может заключаться в ограничении мыши вашим окном / диалогом, чтобы она не могла выйти. Вам нужно будет либо просмотреть MSDN, чтобы найти конкретные функции Windows, чтобы сделать это, либо сделать это, как в примере кода Кшегунова на форумах Qt: https://forum.qt.io/topic/61832/ ограничивают мышиного курсора-перемещение / 12
Объект броска преобразовать массив
$array = (array) json_decode(['TEST'=>true]);
Это массив, поэтому вы можете легко перебрать его, используя foreach
:
foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message) {
echo $message->Reference;
}
Однако стоит отметить, что PHP SoapClient
по умолчанию кажется, что массивы возвращаются как массив PHP, только если в массиве более одного значения - если есть только одно значение, вы просто получите это значение (не содержащееся в массиве). Простой способ обойти это - использовать параметр SOAP_SINGLE_ELEMENT_ARRAYS
в конструкторе SoapClient
; это предотвратит такое поведение и гарантирует, что вы всегда будете получать массивы.
Я считаю, что нужно всегда проверять, есть ли у вас массив сообщений, даже если это массив из 1. Таким образом вы не дублируете никакую обработку.
$smsMessages = is_array( $result->GetIncomingMessagesResult->SMSIncomingMessage )
? $result->GetIncomingMessagesResult->SMSIncomingMessage
: array( $result->GetIncomingMessagesResult->SMSIncomingMessage );
foreach ( $smsMessages as $smsMessage )
{
echo $smsMessage->Reference;
}
Перебирать массив ?! : -)
foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message)
{
$reference = $message->Reference;
//...
}
вам необходимо указать ключ объекта массивов SMSIncomingMessage.
$result->GetIncomingMessagesResult->SMSIncomingMessage[0]->Reference;
или
foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message)
{
$reference = $message[0]->Reference;
//...
}