ホームページ  >  記事  >  バックエンド開発  >  PHPでパラメータを渡すにはどのような方法がありますか?

PHPでパラメータを渡すにはどのような方法がありますか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-22 15:45:124928ブラウズ

php でパラメータを渡す方法は次のとおりです: 1. 呼び出し元はパラメータを処理せずに直接パラメータを渡します; 2. パラメータを配列に結合し、配列全体をパラメータとして渡します; 3. データを渡します構造体オブジェクトがパラメータとして使用されます。

PHPでパラメータを渡すにはどのような方法がありますか?

#php でパラメータを渡す方法は次のとおりです:

#最初の方法

パラメータを直接渡し、各パラメータを並べて 1 つずつ書き留めます。例:

PHPでパラメータを渡すにはどのような方法がありますか?利点:

    パス 入力パラメータは明確であり、入力パラメータの数とその意味を明確に知ることができ、セマンティクスは一目瞭然です。
  • 呼び出し元はパラメータを処理せずにパラメータを直接渡すため、呼び出しが便利です。
  • よりフレンドリーで初心者にも理解しやすくなりました。
  • 欠点:

    仮パラメータが多すぎると、コードの美しさが失われ、カジュアルすぎます。
  • 特定のパラメータを変更する必要がある場合、本体全体に影響します。たとえば、$param5 はオプションのパラメータに変更され、デフォルト値は test:

PHPでパラメータを渡すにはどのような方法がありますか?欠点は明らかで、現時点では、PHP パラメーターの順序により、オプションのパラメーターは最後になければならないため、すべての呼び出し元は少なくとも元の param5 を削除し、パラメータの最後の位置に配置します。変更にはコストがかかります。

まとめ: パラメータが少ない場合は、パラメータを 1 つずつ直接渡すことができ、これが最適ですが、パラメータが多すぎる場合や変更の必要性が大きい場合、この方法は間違いなく面倒です。

したがって、上記の場合、パラメーターが多すぎる場合は、方法 2 を使用できます。

2 番目の方法

パラメーターを In に結合します。配列の形式の場合、配列全体がパラメータとして渡されます。例:

PHPでパラメータを渡すにはどのような方法がありますか? 利点:

    コードがすっきりしました。
  • コードはより柔軟になり、パラメーターを変更する必要がある場合でも、関数のパラメーターを変更する必要はなくなり、呼び出し元にパラメーターを追加するだけで済みます。
  • 欠点:

    PHP には文法上の制限がありません。たとえば、文字列などの型の制限はなく、デフォルト値を持つオプションのパラメーターには構文の制限もありません。これには、パラメーター チェックのもう 1 つの層を実行する必要があります。
  • パラメータは読みにくくなっています。関数配列内のどのパラメータは仮パラメータでは確認できないため、呼び出し元の配列構成を確認する必要があります。
  • 要約: 一般に、この方法は最初のパラメータ送信方法の欠点を解決できますが、さらに大きな欠点ももたらします。パラメータ制限には追加のレイヤーが必要です。は、フックに対処するための比較的低コスト効率の方法です。

上記 2 つの方法の長所と短所に基づいて、パラメータを渡す 3 番目の方法をまとめました。

3 番目の方法

Pass aデータ構造オブジェクト パラメータとして使用します。例:

PHPでパラメータを渡すにはどのような方法がありますか?利点:

    パラメータは、データの整合性を保証するデータ構造です。データ。つまり、渡されるデータ構造には必要なパラメーターが含まれている必要があります。
  • パラメータを増減する必要がある場合は、データ構造モデルのオブジェクト プロパティを変更するだけで済みます。
  • データの制御と制限をモデル層で統一して処理できます。
  • 欠点:

    複数のデータ構造モデルが必要になる場合があります。
  • 要約: 一般に、この方法は、複数のデータ構造モデルの確立が必要でコード量が増加するという、1 番目と 2 番目の方法の欠点を包括的に解決できます。

関連する学習の推奨事項:
PHP プログラミングの入門から熟練度まで

以上がPHPでパラメータを渡すにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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