объект stdClass и циклы foreach

Вы не можете скрыть курсор мыши, когда он покидает ваше окно (или диалоговое окно), потому что он затем обрабатывается менеджером окон вашей ОС. Обходной путь может заключаться в ограничении мыши вашим окном / диалогом, чтобы она не могла выйти. Вам нужно будет либо просмотреть MSDN, чтобы найти конкретные функции Windows, чтобы сделать это, либо сделать это, как в примере кода Кшегунова на форумах Qt: https://forum.qt.io/topic/61832/ ограничивают мышиного курсора-перемещение / 12

16
задан Houcine 19 September 2012 в 14:42
поделиться

5 ответов

Объект броска преобразовать массив

$array = (array) json_decode(['TEST'=>true]);
0
ответ дан 30 November 2019 в 16:00
поделиться

Это массив, поэтому вы можете легко перебрать его, используя foreach :

foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message) {
    echo $message->Reference;
}

Однако стоит отметить, что PHP SoapClient по умолчанию кажется, что массивы возвращаются как массив PHP, только если в массиве более одного значения - если есть только одно значение, вы просто получите это значение (не содержащееся в массиве). Простой способ обойти это - использовать параметр SOAP_SINGLE_ELEMENT_ARRAYS в конструкторе SoapClient ; это предотвратит такое поведение и гарантирует, что вы всегда будете получать массивы.

40
ответ дан 30 November 2019 в 16:00
поделиться

Я считаю, что нужно всегда проверять, есть ли у вас массив сообщений, даже если это массив из 1. Таким образом вы не дублируете никакую обработку.

$smsMessages = is_array( $result->GetIncomingMessagesResult->SMSIncomingMessage )
    ? $result->GetIncomingMessagesResult->SMSIncomingMessage
    : array( $result->GetIncomingMessagesResult->SMSIncomingMessage );

foreach ( $smsMessages as $smsMessage )
{
    echo $smsMessage->Reference;
}
3
ответ дан 30 November 2019 в 16:00
поделиться

Перебирать массив ?! : -)

foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message)
{
    $reference = $message->Reference;
    //...
}
0
ответ дан 30 November 2019 в 16:00
поделиться

вам необходимо указать ключ объекта массивов SMSIncomingMessage.

$result->GetIncomingMessagesResult->SMSIncomingMessage[0]->Reference;

или

foreach ($result->GetIncomingMessagesResult->SMSIncomingMessage as $message)
{
$reference = $message[0]->Reference;
//...
}
2
ответ дан 30 November 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: