ホームページ バックエンド開発 PHPチュートリアル nusoap がオブジェクトの配列を渡す

nusoap がオブジェクトの配列を渡す

Jul 30, 2016 pm 01:30 PM
array gt nbsp soap

原文: http://www.cnblogs.com/Jaypei/archive/2009/04/09/1432521.html

前回、nuSOAP を使用してオブジェクトを転送することに成功しましたが、実際の運用では別の要件が存在することがよくあります。プロセスはリモートでオブジェクトの配列を返します。午後 1 日かかってようやくテストが成功したので、みんなと共有するのが待ちきれません:)

準備

まずクラス UserInfo を定義します:

class UserInfo {
var $UserName;
//... var $Sequence;
}

次に、リモートメソッドのテスト:

nusoap がオブジェクトの配列を渡す

関数 hello() {
$a = new UserInfo();
$a -&g t;ユーザー名 = ジェイペイ;
$a->シーケンス= 1928388199 ;
$b = newUserInfo();
$b->UserName = "cnblogs";
$b-> シーケンス= 83910021;
return array($a, $b);
}

nusoap がオブジェクトの配列を渡す


一般的な nuSOAP プログラムは次のとおりです: (プロセス全体はその変更です)

nusoap がオブジェクトの配列を渡す

$soap =newsoap_server() ;
// UTF-8 を使用します$soap->soap_defencoding = 'UTF-8';
$石鹸-> decode_utf8 =false;
// jaypei.cnblogs.com$soap->を想定して、WSDL名前空間を設定する必要があります。 configureWSDL(' jaypei.cnblogs ... &gt ;登録('こんにちは');$soap
->サービス($ HTTP_RAW_POST_DATA); 変換プロセス
まず、次のようにUserInfoの複合型を登録します: (これは以前に書きました)

$soap->wsdl->addComplexType(
)
'complexType',
配列 ( ) 'ユーザー名
'
=>配列('名前
'=> , '
タイプ
' =>'
xsd:string'
)
, '=>配列( ' 名前'= >'シーケンス','type' =>'xsd:int ') ); ', array(),array('return'=>'tns:UserInfo'));
リストを返したい場合は、戻り時に型を変更する必要があります。最初に、次のように、string や int などの基本型を返すリスト メソッドを見つけました:
$soap->register('hello', array(), array('return'=>'SOAP-ENC:配列') ); このメソッドがカスタム複合型で使用される場合、型は次のようになります: xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="object[2]"object is not What私たちが望んでいます。そこで、オンラインで関連情報を検索したところ、次のメソッドを見つけました: $soap->register('hello', array(), array('return'=>'tns:UserInfoArray') );ここでカスタマイズする必要があります。次のように tns:UserInfoArray の配列タイプを定義して追加します。 ' UserInfoArray' , ' SOAP-ENC:Array',
array

()nusoap がオブジェクトの配列を渡す,

)


'

tns:UserInfo

'

); この時点でコード部分は完了しましたが、nuSOAP は呼び出し時にエラーを報告しました:

キャッチ可能な致命的なエラー:クラス UserInfo のオブジェクトを ...nusoapnusoap.php の行 6002 で文字列に変換できませんでした

そこで、nusoap.php の行 6002 を見つけて、UserInfo が文字列に変換される理由を確認してください:

$this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]");

コードのほとんどを読みませんでしたが、明らかに単なるデバッグ コードであり、実用的な効果はありません。したがって、それをコメントアウトして呼び出しを続けてください。OK!合格し、すべてがうまくいきました。

注: このエラーが、私の使用方法が本来の設計に反しているためなのか、nuSOAP 自体のバグによるものなのかはわかりません。いくつかのアプリケーションを繰り返しリストし、問題がなければ成功とみなされます。間違いがありましたので修正してください。

以上、nusoap で渡されるオブジェクト配列を内容も含めて紹介しましたが、PHP チュートリアルに興味のある方の参考になれば幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

解決策: 組織では PIN を変更する必要があります。

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Sep 22, 2023 am 11:37 AM

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

Huawei GT3 ProとGT4の違いは何ですか?

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

See all articles