問題タブ [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.
php - コントローラーの下ですべてのアクションを制御するためのYiiの魔法の方法
コマンドーはあなたからの助けが必要です。
Yiiにコントローラーがあります:
/ page ||の下のすべてのサブリクエストを制御するために、YiiCControllerの下にいくつかの魔法のメソッドが必要です。ページコントローラー。
これはYiiでどういうわけか可能ですか?
ありがとう!
php - 画像ギャラリーフォームはMagentoAdminでどのように入力されますか
私はそれを見ることができ、プロトタイプクラス を介して画像データをブラウザに入れる責任がMage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content::getImagesJson()
あります。app\design\adminhtml\default\default\template\catalog\product\helper\gallery.phtml
Product.Gallery
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
ただし、画像コレクションがブロックのどこに設定されているかを追跡することはできません。コントローラーまたはレイアウトのどこかにある魔法のセッターを介してそれを想定していますが、それを追跡することはできません。
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content::getImagesJson()
もっている
element
そのため、そのブロックの属性に何かが入力されています。
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
によってインスタンス化されてMage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery::getContentHtml()
いるようですが、ブロックに属性が設定されていません。
これにより、 Javascriptが探してMage_Catalog_Model_Product_Attribute_Backend_Media::afterLoad()
いる構造に一致する配列が属性に入力されていることがわかりますが、属性がレンダリングブロックに関連付けられている場所についてはまだ少し不思議です。Product.Gallery
このもつれたウェブを頭の中でまっすぐに保つための図が必要だと思います!
ありがとう、
ジョナサン
php - PHPで変数が静的であるかどうかをテストすることは可能ですか?
PHPで変数が静的であるかどうかをテストすることは可能ですか?__get
静的変数も調べる魔法のメソッドを作成しようとしています。property_exists()
変数が静的な場合もtrueを返すことがわかりました。しかし、私は期待する::
代わりに使用する必要がありますか?->
php - マジック __call メソッドの文字列マッチング
次のような名前のメソッドのセットがありますgetThing($what, $extra_args)
( getは常に名前に含まれています)
...そして、それらを呼び出す通常の方法に加えて、次のように呼び出すこともできます。
getWhatThing()
=>return getThing($what, $extra_args);
WhatThing()
=>echo getThing($what, $extra_args);
Thing('what')
=>echo getThing('what', $extra_args);
これらすべてが失敗した場合、メソッドが存在しないというエラーがスローされます...
内からこれを行うにはどうすればよい__call()
ですか? 魔法のメソッドを避けるべきなのはわかっていますが、私の API を使用する人々の生活を楽にしたいのです :)
ありがとう
php - コードが少ないことを除いて、従来のゲッター/セッターメソッドの代わりに__get / __ setを使用することに利点はありますか?
Javaから来たので、私はPHPに休暇で数回しか訪問していません。魔法のgetメソッドとsetメソッドを見ると、私の(Javaの影響を受けた)おなかが痛くなり始めています。プロパティに直接アクセスしているように見えます(もちろん、実際には__getと__setを使用しています)。
つまり、作成する必要のあるコードが少ないことを除いて、従来のgetX()/ setX()メソッドの代わりにマジックゲッターメソッドとセッターメソッドを使用することに利点はありますか?PHPをコーディングするときにそれらを使い始める必要がありますか?
ありがとう、そして最高!
python - Pythonにハイブリッドgetattr+__getitem__が組み込まれていないのはなぜですか?
dictやその他のオブジェクトを受け入れるメソッドと、それらのオブジェクトからフェッチする「フィールド」の名前があります。オブジェクトがdictの場合、メソッドは__getitem__
名前付きキーを取得するために使用します。そうでない場合はgetattr
、名前付き属性を取得するために使用します。これは、Webテンプレート言語ではかなり一般的です。たとえば、カメレオンテンプレートでは、次のようになります。
foo
のようなdictとして渡す場合は、「keyname」キーをフェッチして「bar」を取得します{'keyname':'bar'}
。が次のようなクラスのインスタンスである場合foo.keyname
:foo
次にfoo.keyname
、属性から値をフェッチしkeyname
ます。カメレオン自体は、次のchameleon.py26
ようにその機能を(モジュール内で)実装します。
私はそれを次のような自分のパッケージに実装しました:
問題は、それはかなり一般的なパターンです。多くのモジュールで、その方法またはそれに非常によく似た方法を見てきました。では、なぜ言語のコア、または少なくともコアモジュールの1つにそのようなものがないのですか?それができない場合、それをどのように書くべきかについての決定的な方法はありますか?
php - PHP__get__setメソッド
これらの機能を使用するポイントは何ですか。
私が使用できる場合
なぜ私はわざわざ「樹皮」を宣言するのでしょうprotected
か?この場合の__get()
and__set()
メソッドは、「樹皮」を効果的に公開しますか?
php - PHP__callStaticおよび無効なメソッド名の文字
__callStatic()
PHPに関する簡単な質問。
期待される出力:
実際の出力:
この構文は許可されておらず、機能も使用できません__callStatic()
か?
注:一時変数なしで逃げようとしています。以下が機能します。
しかし、私はそれを避けようとしています。
python - Python ユーザー定義クラスをソート可能、ハッシュ可能にする
Pythonでユーザー定義クラスをソート可能および/またはハッシュ可能にするときに、どのメソッドをオーバーライド/実装する必要がありますか?
注意すべき落とし穴は何ですか?
インタープリターに入力dir({})
して、組み込みの dict のメソッドのリストを取得します。それらのうち、いくつかのサブセットを実装する必要があると思います
Python2 とは対照的に、Python3 で実装する必要があるメソッドに違いはありますか?
php - プロパティを返すオブジェクト?
Typeというクラスがあります。
次の名前のプロパティがあります$value
:
関数を使おうとすると、オブジェクトを渡すときに、の値$obj->value
が渡されることを望みます。例えば:
いろいろ試してみましたが、どこでも検索できませんでした。それも可能ですか?
前もって感謝します。:)
編集:多分あなたは私の質問を少し誤解した(または狭めた)。文字列だけでなく、すべての値型に必要ですint
float
。boolean