php エディター Strawberry では、可変パラメーター関数へのアクセスを渡すために使用される特定のフィールドの一般的な構造を紹介します。可変引数関数は可変数のパラメーターを受け入れる関数ですが、実際のアプリケーションでは、特定のフィールドの値をこれらの関数に渡す必要があることがよくあります。この一般的な構造を使用すると、可変引数関数へのアクセスを簡単に渡したり、特定のフィールドの値を指定したりできるため、より柔軟で正確なパラメーターの受け渡しが可能になります。この共通の構造により、コードが大幅に簡素化され、可読性と保守性が向上します。
foo
という名前の汎用 struct
があるとします。
リーリー
foo を渡したいと考えています。任意のタイプ
foo にすることができます。私の理解では、
foo[int] は
foo[string] と同じではないため、次のように省略記号を
any 型として定義する必要があるということです。 ##
リーリー
これは実際に機能します。
私の問題は、各
foo の data
フィールドに具体的にアクセスしたいことです。しかし、bar
を次のように定義すると、
リーリー
コンパイラが動揺するのは当然です。
は anything
である可能性があり、data フィールドがあることが保証されていないからです。
私は
foos を常に渡すため、data というフィールドがあることは知っていますが、
のみを渡すことを指定することはできません。 foos、このように、
リーリー
#foo
の型が指定されていないためです。
不特定の量の foo
を
に渡して、data
フィールドにアクセスするにはどうすればよいですか? 回避策
1つの解決策は、リフレクションを使用し、
これが何らかの理由で障害や危険とみなされるかどうかはわかりません。おそらく、 things
内のすべてが実際に何らかの種類の
であることを確認するために、そこで何らかのチェックを行う必要があります。そうしないと、存在しないフィールドにアクセスしようとしている可能性があります。
以上が可変引数関数に渡されるジェネリック構造体の特定のフィールドにアクセスするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。