ホームページ  >  記事  >  バックエンド開発  >  中間変数を追加するだけではなく、サーバー メソッドを直接呼び出すことができないのはなぜですか?

中間変数を追加するだけではなく、サーバー メソッドを直接呼び出すことができないのはなぜですか?

WBOY
WBOY転載
2024-02-09 09:36:111135ブラウズ

中間変数を追加するだけではなく、サーバー メソッドを直接呼び出すことができないのはなぜですか?

PHP では、中間変数を追加するだけではなく、サーバー メソッドを直接呼び出すことができないのはなぜですか?これはよくある質問です。 PHP エディタ Apple があなたの代わりに答えます。 PHP では通常、フロントエンド ページを使用してバックエンド サーバーと対話します。サーバー メソッドを直接呼び出すと、ハッカーが悪意のある操作を実行するために使用されるなど、セキュリティ上のリスクが生じる可能性があります。セキュリティを強化するために、中間変数の概念を導入します。フロントエンドリクエストをサーバーに送信し、サーバーが中間変数の値に基づいて対応する操作を実行することにより、潜在的なセキュリティリスクを効果的に軽減できます。さらに、中間変数を使用すると、コードの保守性とスケーラビリティが向上し、コードがより明確で理解しやすくなります。要約すると、中間変数の追加は、コードの品質と信頼性を向上させる安全で信頼できる方法です。

質問内容

mqttのクライアントを書いています。 mqtt.OnConnectHandler のコールバックを書きました。 プリントサーバーの接続アドレスを書きたいのですが。

リーリー

したがって、直接使用できないことがわかりました。なぜ? それらは同じものではないでしょうか? 受信に中間変数しか使用できないのはなぜですか?

2つの方法を試してみました。 成功するのは一度だけです。 どっちも大丈夫だと思ってた。

解決策

これは、Servers メソッドがポインター レシーバーを使用して宣言されているためです。これは、Servers を呼び出すためには、受信者がアドレス指定可能である必要があることを意味します:

https://www.php.cn/link/753a043674f0193523abc1bbce678686

一時変数はアドレス指定できません。ここ:### リーリー

c.OptionsReader() はアドレス指定できない値を返すため、その値を受信側として Servers を呼び出すことはできません。 c.OptionsReader の戻り値を変数に代入すると、アドレス指定可能になり、その変数を使用して Servers() を呼び出すことができます。

以上が中間変数を追加するだけではなく、サーバー メソッドを直接呼び出すことができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。