問題タブ [magic-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
11526 参照

php - マジックメソッドはPHPのベストプラクティスですか?

マジックメソッドはPHPのベストプラクティスですか?

0 投票する
2 に答える
899 参照

php - Magic methods + Reflection API = can't investigate class properties. Why?

If I use magic methods. While using reflection API, I can't investigate class properties.. Why is it so?

EDIT

What is Reflection API? pls do not refer me php.net i didnt understood that.. guide me in your words plsss

0 投票する
1 に答える
187 参照

php - クラス外で php のマジック メソッドを使用する

定義されたクラスの外で PHP マジック メソッド (具体的には __get()) を使用することは可能ですか?

すばやく読み込むために、構成ファイルで使用したいと考えています。構成ファイルには、多くのキーを持つ単一の配列 $config があります。したがって、__get() をオーバーライドして、キーを配列に返すようにしたいと思います。

0 投票する
1 に答える
1258 参照

php - PHP の Magic __set を自然変数のように機能させるにはどうすればよいですか?

基本的に、私がやりたいことは、セッションを使用してすべてを格納する変数というクラスを作成することです。これにより、セッションを直接操作することなく、サイト全体で使用する必要があるデータをすばやく取得して格納できます。

現在、私のコードは次のようになっています。

しかし、自然変数のように使おうとすると、たとえば...

テストを「Moo」に設定し、配列を完全に無視するため、「Moo」ではなく「o」を取得することになります。私はそれを回避できることを知っています

しかし、自然変数であるかのように使用できるようにしたいと考えています。これは可能ですか?

0 投票する
5 に答える
7017 参照

php - PHP 5.1.6 マジック __toString メソッド

codeigniterでは、モデルに toString メソッドを実装する必要があるこのプラグインを使用しようとしています。私の toString メソッドは単純に

PHP 5.3 を使用するローカル マシンではすべて問題なく動作しますが、PHP 5.1.6 を使用する運用サーバーでは、そのオブジェクトの name プロパティの値が表示される場所に「Object id#48」と表示されます。ここに問題がありますが、まだ理解できません...どうすればこれを修正できますか?

0 投票する
2 に答える
818 参照

python - Python のマジック メソッド

私はPythonが初めてで、PHPで魔法のメソッドのようなものを作成する方法があるかどうか疑問に思っています( http://www.php.net/manual/en/language.oop5.overloading.php#language. oop5.overloading.methods )

私の目的は、モデル内の子クラスへのアクセスを容易にすることです。基本的に、n 個の子クラスを持つ親クラスがあります。これらのクラスには、言語キー、翻訳キー、翻訳値の 3 つの値があります。は、一種の一般的な変換処理を記述しています。親クラスは、それぞれ異なる言語で異なる翻訳キーの翻訳を持つことができます。たとえば、キー「タイトル」はドイツ語と英語に翻訳でき、キー「説明」も(これまでなど)

子クラスを取得して、設定値でフィルター処理したくありません (少なくとも、明示的ではありませんが、魔法のメソッドの背後にある具体的な実装がこれを行います)。電話したい

ドイツ語 (de) のタイトルの翻訳を取得します。

そのため、呼び出されたメソッドの名前とそのパラメーターを取る魔法のメソッドが必要です (PHP のように)。私がPythonを掘り下げた限り、これは単純な属性(__getattr__、__setattr__)またはクラス内で直接設定/取得すること(__getitem__、__setitem__)でのみ可能であり、どちらも私のニーズに適合しません。

多分これに対する解決策はありますか?助けてください!前もって感謝します!

0 投票する
3 に答える
2873 参照

ruby - Rubyの魔法のメソッド?

ルビー愛好家!私はルビーでDSLを書き込もうとしていますが、いくつかの魔法のメソッドを作成できるようにしたいと思っています(それが私が望むものの最も正確な用語であるかどうかはわかりません)。

次のようなことができるようになりたいです。

そして、それを真または偽に解決させます。

基本的に、関数 "contains"を定義して、配列aと変数bを受け取り、実行するa.contains?(b)ことができますが、関連するすべてのルビー固有の構文はありませんか?

0 投票する
2 に答える
108 参照

php - PHPでクラスメンバーを統合する

最近、Matthew Weier O'Phinney(ZFプロジェクトリーダー)による記事に出くわしました。この記事には、次のようなサンプルコードが含まれています。

従来は4つの異なるメンバー変数であったものが1つの配列に統合されていることに注目してください。$_dataクリーンなコンストラクター(パラメーターが1つだけ)の利点はわかりますが、IDEが配列でオートコンプリートをうまく実行できるとは思えません。

私が考えることができる1つの代替案は、魔法のメソッドを使用して、単一のパラメーターと4つのメンバーを持つコンストラクターを作成することです。

コードの2番目のブロックの方が優れているようです...しかし、O'Phinney氏よりも優れたコードを記述できるとは思えません。コンストラクターへのクリーンなインターフェイスを維持しながら、クラスメンバーを処理するための最良の方法は何ですか?

0 投票する
1 に答える
563 参照

php - Magento で Event Observer クラスの関数定義が見つかりません

Magento を見たことがある、または使用したことがある人のために、カタログ製品の保存アクションのイベント オブザーバー クラスの次の 3 つの関数の定義をどこで見つけることができるか教えてください。

  1. setBundleOptionsData()
  2. setBundleSelectionsData()
  3. setCanSaveBundleSelections()

このようなばかげた質問をして申し訳ありませんが、私は本当に無力です。どんな助けでも大歓迎です。

最悪の部分は、上記の 3 つのメソッドが良い方法で製品オブジェクトに使用されており、それらも機能していることです。しかし、それらの定義はどこにありますか?

編集:-
わかりました、これらが「Varien_Object」によって使用されていることを理解できます。これらは、マジックメソッドの概念を使用した単純なセッター関数です。しかし、プログラム カウンターがそのような関数 (この場合は Event Observer クラス) に到達したときのコーディング フローを教えてください。

0 投票する
4 に答える
160 参照

php - クラスのインスタンス化に相当する__getマジックメソッドはありますか?

__get()マジックメソッドの種類の機能を実装する方法があるかどうかを確認しますが、新しいクラスをインスタンス化しようとする場合。

私の目標は

$foo = new Cat();

最終的には、汎用オブジェクトが作成されます。

new Mammal('Cat');

これ$fooはクラスのインスタンスでありMammal、呼び出されたクラス名('Cat')が引数としてMammalのコンストラクターに渡されます。


注:LithiumまたはCakePHPに精通している人にとって、私が念頭に置いている最終的なゲームは、異なるデータベーステーブルごとに多数のクラスを定義する必要がないようにすることです。もしそうなら、ほとんどは単に空であり、基本的なCRUD操作が必要なすべてです。さらに、これらすべてのインクルードとクラス定義は、オーバーヘッドに最適ではありません。私の考えは、単一の「モデル」クラスを使用してほとんどのジェネリック関数を処理することです。特定のデータベーステーブルに対してより高度な機能が必要な場合は、いつでもサブクラスを作成できます。