PHP.mk документација

SoapClient::__call

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

soapclient.call.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека soapclient.call.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
SoapClient::__call

Референца за `soapclient.call.php` со подобрена типографија и навигација.

soapclient.call.php

SoapClient::__call

класата mysqli_driver

SoapClient::__callПовикува SOAP функција (застарено)

= NULL

public SoapClient::__call(string $name, array $args): mixed

Директното повикување на овој метод е застарено. Обично, SOAP функциите може да се повикаат како методи на SoapClient објект; во ситуации каде ова не е можно или се потребни дополнителни опции, користете SoapClient::__soapCall().

Параметри

name

Името на SOAP функцијата што треба да се повика.

args

Низа од аргументи што треба да се предадат на функцијата. Ова може да биде или подредена или асоцијативна низа. Имајте предвид дека повеќето SOAP сервери бараат имиња на параметри, во кој случај ова мора да биде асоцијативна низа.

Вратени вредности

SOAP функциите може да вратат една или повеќе вредности. Ако SOAP функцијата врати само една вредност, вратената вредност ќе биде скаларна. Ако се вратат повеќе вредности, наместо тоа се враќа асоцијативна низа од именувани излезни параметри.

При грешка, ако SoapClient објектот е конструиран со exceptions објектот е креиран со false, а SoapFault објектот ќе биде вратен.

Белешки од корисници 2 забелешки

philipp dot gruber at catchoftheday dot com dot au
пред 11 години
If you are using a WSDL, the library will strip out anything from your parameters that is not defined in WSDL, without giving you any notice about this.

So if your parameters are not fully matching the WSDL, it will simply send no parameters at all.
This can be a bit hard to debug if you don't have access to the target server.

__soapCall() expects parameters in an array called 'parameters' as opposed to calling the function via it's WSDL name, where it accepts the parameters as a plain array.

I.e. if a function called sendOrder expects a parameter (array) called orderDetails, you can call it like this:

$orderDetails = array(/* your data */);
$soap->sendOrder(array('orderDetails' => $orderDetails));

Which is equivalent to:

$client->__soapCall('sendOrder', array('parameters' => array('orderDetails' => $orderDetails)));

Note the additional 'parameters' key used in __soapCall().
KRavEN
пред 16 години
extend of __call thats adds a retry to handle the occasional 'Could not connect to host' exceptions

<?php
class LocalSoapClient extends SoapClient
{

  public function __call($function_name, $arguments)
  {
    $result = false;
    $max_retries = 5;
    $retry_count = 0;
    
    while(! $result && $retry_count < $max_retries)
    {
      try
      {
        $result = parent::__call($function_name, $arguments);
      }
      catch(SoapFault $fault)
      {
        if($fault->faultstring != 'Could not connect to host')
        {
          throw $fault;
        }
      }
      sleep(1);
      $retry_count ++;
    }
    if($retry_count == $max_retries)
    {
      throw new SoapFault('Could not connect to host after 5 attempts');
    }
    return $result;
  }
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.