4

nusoap で ref によってパラメーターを設定するにはどうすればよいですか。次のコードでは、ref によって 2 つのパラメーター (status と recId) を設定する必要があります。動作しないことに注意してください&

        $params = array(
        'username' => GATEWAY_USERNAME,
        'password' => GATEWAY_PASSWORD,
        'from' => GATEWAY_NUMBER,
        'to' => array($to),
        'text' => $message,
        'flash' => $flash,
        'udh' => '',
        'status' => &$status,
        'recId' => &$recId
    );

    $sendParams=array($params);
    $res=$this->client->call('Send',$sendParams);
4

2 に答える 2

1

グスタボ専用。

PHP 5.4のバージョンからのアップ:

呼び出し時の参照渡しは削除されました。

それが意味することは、<= PHP 5.3そのようなバージョンコードでは機能するはずです:

function appendA($string) {
    $stringA .= 'A';
}

$string = '';
appendA(&$string);

しかし、後で機能しなくなりました。PHP 5.4 以降で参照によってパラメーターを編集する関数を作成するには、最初からこの方法で宣言する必要があります。例えば:

function appendA(&$string) { // <- first change
    $stringA .= 'A';
}

$string = '';
appendA($string); // <- second change

PHP 5.4+ で関数を呼び出そうとするとappendA(&$string)通知が表示され、参照によって値が変更されないことに注意してください。

$params元の質問によると、nusoap の機能中に変更される場所が見つからないclient::call()ため、参照によってそれらを提供しても意味がありませんが、盲目である可能性があります。いずれにせよ、メソッドは PHP 5.4+ と互換性のある方法で宣言されていないため、&メソッド呼び出し中の Near パラメータはこれらの PHP バージョンでは機能しません。その場合、メソッドの修正が必要です。

于 2015-04-02T09:43:28.097 に答える