問題タブ [magic-function]

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 投票する
3 に答える
98 参照

php - __get 関数のない php では、特定のインスタンスから値を取得できませんか?

私の技術書にそう書かれていたので、それが本当かどうか疑問に思っています。たとえば、次のようになります。

それは私にとってはうまくいきます。この本は、クラスの外でそれを使用するために、__get関数を作成していないと言っています。私は少し混乱しています。

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

php - 新しい PHP オブジェクトでの即時の 1 行のマジック メソッド呼び出し

__call()新しく構築されたオブジェクトでマジック メソッド ( ) をすぐに呼び出したいと思います。例:

理想的 (ただし、解析エラーが発生します):

働く:

これは可能ですか?PHP 5.4 が即時の 1 行のオブジェクト メソッド呼び出し ( http://docs.php.net/manual/en/migration54.new-features.php )をもたらしたことを知っているので、なぜこれが機能しないのかわかりません。

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

php - 一般的なメソッドを定義する方法/オブジェクトのすべてのメソッドをキャッチする方法は?

オブジェクト メンバーの同じ概念で、ジェネリックな __get と __set を定義できます。
メソッドに対して同じことを行うにはどうすればよいですか?

私の言葉の編集を大歓迎します。

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

php - __call()マジック関数はPHPでどのように機能しますか?

$obj という名前のオブジェクトがあります。__callそのクラスの関数をオーバーライドしたので、呼び出すと次のように$obj->setVariableName($value)なります$obj->variableName = $value$obj->setVariableName($value)プロジェクトでいつ、どのように正確に呼び出されるのかわかりません。そのため、アプリケーションの実行中に次のことが起こります。

そして、余分な関数を書くとsetVariable3、それは機能します。によって直接呼び出されるのか、のような関数で呼び出されるのか、どのようsetVariable3に呼び出されるのかわかりません。$obj->setVariable3call_user_func_array

__callうまくいかない問題は何setVariable3ですか?

更新:setVariable3これが a から呼び出され、$form->bind($user)実行中$user->setVariable3('foo')の作品であることがわかりました。(これは ZF2+Doctrine プロジェクトです)

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

php - 変数を __wakeup() に渡す

特定のオブジェクトをデータベースに保存しています。データベース内の各ノードは、シリアライズされたオブジェクトを運びます。ノードは子を持つことができるため、オブジェクトも子を持つことができます。したがって、$childrenオブジェクトのプロパティに、直接の子を含む配列を入力したいと考えています。オブジェクトがシリアル化されていないときに満たさ$childrenれる必要があります。

外部からこれを行うことを避けるために、オブジェクト自体にそれをさせたいと思いました。ただし、オブジェクトは、自分が属するデータベース エントリを認識していません。したがって、__wakeup()が呼び出されたとき、オブジェクトには、対応する独自のデータベース エントリをロードするために必要な情報がありません。

私はそのようなオプションを提供していない__wakeup()ことを認識していますが、変数を に渡すことができるようにするのが最善のようです。unserialize()

これに関する情報は見つかりませんでした。グローバルを使用する以外は不可能であると結論付けようとしていましたが、これは私が選択したルートではありません。

出来ますか?はいの場合、どのように?

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

python - len() がクラスの __set__ を実行するのはなぜですか?

Django でカスタム モデル フィールドを実装しました。これは、ファイルを直接割り当てるだけでなく、URL 文字列を割り当てて画像を読み込むことができる画像フィールドです。

一般的に、フィールドは機能します。しかし、何らかの理由で、Django 自体が内部的に文字列値を割り当てます。フィールドを使用するモデルのクエリ セットがフィルター処理されるたび__set__に、文字列を使用して呼び出され、except 句の print ステートメントが発火しError fetching upload/to/50e170bf-61b6-4670-90d1-0369a8f9bdb4.pngます。

django/db/models/query.pyDjango 1.7c1 からの呼び出しを絞り込むことができました。

行が原因でフィールド__set__が実行されるのはなぜですか? これを回避するには、入力値が有効な URL であることを検証できますが、まずその理由を知りたいです。

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

php - PHP: 使用されている関数が見つかりません (定義されていないようです)

私は他の誰かのコードを見ています。GetSku()、 などの関数を呼び出すクラスがありWriteOrder($order)ますが、これらがどこにあるかを見つけることができません。確認しました…</p>

  • その他のスクリプトまたはクラスのインクルージョン: 明示的または魔法の関数 ( __call) は定義されていません
  • grep -rHn "n *GetSku" /path/to/codebase: 何も返さない
  • Sublime の cTags: 何も見つかりませんでした
  • 元の開発者のナレッジ ベース: メール リクエストを行ったときにエラーが返されました

これらの不思議な機能は、文字通り…のように呼ばれます。</p>

おそらく何を定義でき、それらは機能しますか?どういうわけかカスタムマジック機能?ある種の動的関数?iPhoneで猿のように頭を掻いています。