return 'header handler ' . ($this->auth ? 'called' : 'not called'); } } class LocalSoapClient extends SoapClient { function __construct($wsdl, $options) { parent::__construct($wsdl, $options); $this->server = new SoapServer($wsdl, $options); $this->server->setObject(new testSoap()); } function __doRequest($request, $location, $action, $version, $one_way = 0) { ob_start(); $this->server->handle($request); $response = ob_get_contents(); ob_end_clean(); return $response; } } $cl = new LocalSoapClient(dirname(__FILE__) . '/bug50762.wsdl', array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => true)); class authToken { public function __construct($token) { $this->authToken = $token; } } $cl->__setSoapHeaders(array(new SoapHeader('http://sova.pronto.ru/', 'authToken', new authToken('tokendata')))); echo $cl->testHeader('param') . PHP_EOL;