【发布时间】:2011-03-28 15:27:59
【问题描述】:
我正在尝试使一个非常小的 SOAP 系统正常工作,但我在几天内一直在努力解决一个(小)问题,而 Google 也无法帮助我......
我想做的事情:我想对几个变量做一些事情,我在一个类中传递这些变量。 问题:我想将 server.php 文件中的传入类用作对象。但这是不可能的。
我的服务器 PHP 文件:
class Lid
{
public $NumberOfYears; //this one is public for example purpose only
private $tew;
private $School;
private $Price;
public function __construct($dump){
$this->tew = "dump:".$dump;
}
public function getPrice(){
return $this->Price;
}
}
class Functies{
public function __construct(Lid $Lid){
$Lid->getPrice(); //What I want to do
return new Lid($Lid->NumberOfYears);
}
}
$classmap = array('Lid'=>'Lid');
$server = new SoapServer(NULL,
array(
'classmap'=>$classmap,
'uri' => "http://127.0.0.1/ns/soap/")
);
$server->setClass("Functies");
$server->handle();
“功能”类具有我想通过 SOAP 导出的所有方法。我使用传输类 Lid 作为参数。我真正想做的是在传入类 $Lid 上调用方法。
当我尝试运行客户端脚本时,它返回以下错误:
Uncaught SoapFault exception: [SOAP-ENV:Server] Call to undefined method stdClass::getPrice()
我理解这个问题。 PHP 认为参数 $Lid 是一个类,而不是一个对象。
所以,我的问题:
- 如何使 $Lid 成为一个对象?
- 如何访问我的私有/公共变量?我尝试通过
$Lid->NumberOfYears执行此操作,但这只是返回一个空字符串。
提前致谢
【问题讨论】: