PHP-连接到Exchange Web服务的问题

PHP-连接到Exchange Web服务的问题,php,class,variables,soap,exchangewebservices,Php,Class,Variables,Soap,Exchangewebservices,我刚刚开始熟悉使用ExchangeWeb服务(EWS)和Web上提供的指导原则(例如) 我有一个测试服务器,在那里我得到了正确的响应。当我将完全相同的文件移动到生产服务器时,我没有得到响应(空白页),PHP通知如下: Notice: Trying to get property of non-object in index.php on line 48 index.php第44至48行: 44 - $FindFolder->Traversal = 'Shallow'; 4

我刚刚开始熟悉使用ExchangeWeb服务(EWS)和Web上提供的指导原则(例如)

我有一个测试服务器,在那里我得到了正确的响应。当我将完全相同的文件移动到生产服务器时,我没有得到响应(空白页),PHP通知如下:

Notice: Trying to get property of non-object in index.php on line 48
index.php第44至48行:

    44 - $FindFolder->Traversal = 'Shallow';
    45 - $FindFolder->FolderShape->BaseShape = 'AllProperties';
    46 - $FindFolder->ParentFolderIds->DistinguishedFolderId->Id = 'root';
    47 - $result = $client->FindFolder($FindFolder);
    48 - $folders = $result->ResponseMessages->FindFolderResponseMessage->RootFolder->Folders->Folder;
第47行之后的
var\u dump($client)
返回正确的数据。但在将类对象转换为
第47行中的变量后:$result=$client->…
a
var\u dump($result)
返回
NULL
(在生产服务器上,但在测试服务器中充满数据)

我知道PHP类是区分大小写的,但我认为这种情况是正确的,这在测试服务器上是有效的

有什么想法吗?

更新#1

我添加了有关var_转储的更多详细信息,用于跟踪问题。这些转储都放置在第47行之后:

变量转储($FindFolder)

变量转储($client)

变量转储($result)

更新#2
为了确保这一点,我在生产服务器上测试了cURL,它可以正常工作。我还注意到,测试服务器和生产服务器的var_转储略有不同:

["user":protected]
来自测试服务器的var_转储($client)的相关部分:

["user:protected"]
来自生产服务器的var_转储($client)的相关部分:

["user":protected]

引号不在同一个地方。这是否相关并导致查询无法连接,从而无法返回数据?如果是这样,我该如何解决这个问题?

FindFolder是否返回一个对象(例如返回$this)

方法链接需要返回一个对象


最后,我想我已经找到了PHP5.3.3中的一个bug,或者是PHP5.3.3中带有Exchange的Talking SOAP中的一个bug

我最好的猜测是,在原始帖子的更新2中提到的受保护变量的措辞中有一个bug

运行PHP 5.1.1和其他5.2.17的服务器的相关
var_dump($client)

["user:protected"]
运行PHP 5.3.3的服务器的相关
var_dump($client)

["user":protected]

因此,我想我将不得不改用旧版PHP的托管提供商。

我在原始帖子中添加了更详细的var_转储跟踪。如果这不能完全回答您的问题,请告诉我。我会尽我所能回答你的回答,但我还是个初学者:)
["user:protected"]
["user":protected]