/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/soap/tests/classmap004.phpt
67 строк
1 KB
Máté Kocsis
Add internal URI handling API (#19073)
19 авг 2025, 19:35
Не верифицирован
19 авг 2025, 19:35
1cff181
Код
Авторство
О чём код?
--TEST-- SOAP Classmap 4: encoding of objects with __get() --EXTENSIONS-- soap --FILE-- <?php ini_set("soap.wsdl_cache_enabled",0); class A { public $a; function __construct($a){ $this->x = $a; } function __get($name) { return @$this->a[$name]; } function __set($name, $val) { $this->a[$name] = $val; } function __unset($name) { unset($this->a[$name]); } } class B extends A { function __construct($a){ parent::__construct($a); $this->y = $a + 1; } } function f(){ return new B(5); } class LocalSoapClient extends SoapClient { private $server; function __construct($wsdl, $options) { parent::__construct($wsdl, $options); $this->server = new SoapServer($wsdl, $options); $this->server->addFunction("f"); } function __doRequest($request, $location, $action, $version, $one_way = false, ?string $uriParserClass = null): string { ob_start(); $this->server->handle($request); $response = ob_get_contents(); ob_end_clean(); return $response; } } $client = new LocalSoapClient(__DIR__."/classmap003.wsdl", array('classmap'=>array('A'=>'A','B'=>'B'))); print_r($client->f()); ?> --EXPECT-- B Object ( [a] => Array ( [x] => 5 [y] => 6 ) )