PHPの__get()
と__set()
の魔法に相当するアクションスクリプトがありますか?私はメンバー変数を取得/設定する動作をオーバーライドできるようにしたい。PHPの__get()と__set()に相当するアクションスクリプト
1
A
答えて
1
見つけました。
Proxyクラスを拡張すると、この問題を解決できます。
1
残念ながら、そのようなことはありません。
あなたがすることができるすべては、例えば、いずれかの
myObject.hasOwnProperty (name)
単純なオブジェクト上の
またはクラスインスタンスのdescribeType()のいくつかの変種を使用することにより、特定のプロパティの有無を確認している
describeType(myObject).accessor
へすべてのアクセサーメソッドのXMLListを取得するか、
describeType(myObject).variable
toすべての変数のXMLListを取得します。
しかし、describeType()はパフォーマンス面でかなり高価ですので、各タイプのリストを格納するための何らかの型のハッシュマップを用意して、すでに記述されている型の参照を行います。
未定義のプロパティがアクセスされる可能性がある部分の周りにtry/catchブロックを使用することもできますが、多くのエラーがスローされると、これによって多くのパフォーマンスが低下します。
関連する問題
- 1. PHPのcreate_function()に相当するアクションスクリプト
- 2. __get()&__set()メソッドの意味
- 3. Node.jsのPHPの__get()、__set()&__call()マジックメソッドを模倣する
- 4. PHP __set変数__getは参照渡しです
- 5. __getと__setの関数をトリガする際の問題
- 6. __setと__getのマジックメソッドを使ってクラスをインスタンス化する
- 7. なぜ私は__get()と__set() - phpの魔法を使うべきですか?
- 8. INET_NTOAとINET_ATONに相当するPHP相当額
- 9. php magic method __set
- 10. PHP相当
- 11. PHPの 'implode'に相当するもの
- 12. golangのphpのchrに相当する
- 13. PHPの$ _SESSIONのPerlに相当する
- 14. Pythonの `urljoin`に相当するPHP
- 15. Pythonの `str.format`メソッドに相当するPHP?
- 16. PHPの$に相当するRuby
- 17. phpのvirtual()に相当するPython
- 18. Objective-Cの@ "string"に相当するPHP
- 19. asp.netのResolveUrlに相当するPHP
- 20. PHPのASP.NET HttpModulesに相当する
- 21. PythonでPHPのpreg_matchに相当する
- 22. cURLからPHPに相当する
- 23. PHPでquadraticCurveToに相当する
- 24. JavaScriptに相当するPHP preg_replace
- 25. C#string.IsNullOrEmptyメソッドに相当するPHP?
- 26. PHPがnth-childに相当する
- 27. PHP time()に相当するC#.NET
- 28. PHPのcompact()とextract()のPython相当版
- 29. PHPの "self ::"に相当するC#とは何ですか?
- 30. PHP相当の.Net Entity Framework
これは '__get()'と '__set()'と同じですか? PHPでは、これはメンバ変数の "catch all"として機能するので、メンバ変数がコンシューマがアクセスしようとしたときに定義されていない場合、 '__get()'または '__set()'が呼び出されます。 –
私の悪いです。私はそれをもっと慎重にチェックすべきでした...私はそれに応じて私の答えを編集しました。 – weltraumpirat