2017-06-30 90 views
0

Apache 2.2.32上的PHP 5.6.30沒有正確生成空變量

我試圖用SoapClient撥打電話。請求結構中的一個類具有很多屬性,其中大多數屬性必須以xsi:nil="true"發送。下面是一個例子

class myClass { 
    public $attribute1; 
    public $attribute2; 
    public $attribute3; 
} 

一個簡單的類時,我發送請求的XML而不設定任何(或空的所有屬性)如下生成(跳過SOAP-ENV和等):

<ns1:class> 
    <ns1:attribute1 xsi:nil="true"> 
    <ns1:attribute2 xsi:nil="true"> 
     <ns1:attribute3 xsi:nil="true"></ns1:attribute3> 
    </ns1:attribute2> 
    </ns1:attribute1> 
</ns1:class> 

我期望是

<ns1:class> 
    <ns1:attribute1 xsi:nil="true" /> 
    <ns1:attribute2 xsi:nil="true" /> 
    <ns1:attribute3 xsi:nil="true" /> 
</ns1:class> 

如果我分配一個值,可以說attribute2那麼XML就會產生這樣:

<ns1:class> 
    <ns1:attribute1 xsi:nil="true"> 
    <ns1:attribute2>my_value</ns1:attribute2> 
    <ns1:attribute3 xsi:nil="true"></ns1:attribute3> 
    </ns1:attribute1> 
</ns1:class> 

很明顯,遠程服務器不接受我的請求!

對這個問題有什麼想法?

順便說一句我沒有提供WSDL,因爲我首先必須要求權限。

謝謝

+1

你需要顯示你的代碼。你能否用所有專有名稱取代WSDL的版本? – Barmar

回答

0

好像這是一個不是問題的問題,在一個點上,而抓我的反應它是由瀏覽器解釋(試過Safari和Firefox)這是,我不知道爲什麼,產生顯示錯誤。使用原始數據(即將其寫入日誌文件或類似的東西)爲我提供了正確的輸出,而沒有這種奇怪的行爲。