問題タブ [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 投票する
10 に答える
8018 参照

php - PHP で __construct()、__get()、__set()、および __call() を使用する/使用する必要があるのはいつですか?

同様__constructの質問で について説明していますが、これを見つけた検索者のためにタイトルに残しました。

どうやら、__get と __set は、取得または設定される変数であるパラメーターを取ります。ただし、変数名を知っている必要があります (たとえば、人の年齢が $myAge ではなく $age であることを知っているなど)。したがって、変数名を知っている必要がある場合、特によく知らないコード (ライブラリなど) を操作している場合は、意味がわかりません。

__get()__set()、およびを説明しているページをいくつか見つけまし__call()たが、なぜ、いつ役立つのかはまだわかりません。

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

alias - IPython で %magics のエイリアスを作成するにはどうすればよいですか?

%edit -x のエイリアス %xed を作成したいとします。どうすればいいですか?

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

php - マジック関数と継承

(PHP を使用して) 別のマジック オブジェクトを拡張するマジック オブジェクトを作成できるかどうかを知りたいです。

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

php - PHPのempty()の魔法の関数は何ですか?

と同じものではないので__isset、そうではありませんisset()empty()

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

php - 通常と魔法のセッターとゲッターの違い

セッション変数に魔法のゲッター/セッター クラスを使用していますが、通常のセッターとゲッターの違いがわかりません。

コード:

最初に気付いたのは$session->_unset('var_name')、変数を削除するために呼び出す必要があることです。それについては「魔法のような」ことは何もありません。

第二に、これを使用しようとすると$session->some_var機能しません。を使用してのみセッション変数を取得できます$_SESSION['some_var']

PHPのマニュアルを見ましたが、関数は私のものと同じように見えます。

私は何か間違ったことをしているのですか、それともこれらの関数について何か魔法はありませんか?

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

python - Mercurial/Python - アンダースコア関数は何をしますか?

Mercurial では、多くの拡張機能がヘルプ/構文文字列をアンダースコア関数の呼び出しにラップします。次のようにします。

これは私を混乱させます。なぜなら、それは必要ではないようで (拡張機能の記述の説明では言及されていません)、クラスに _ が定義されていないように見えるからです。ラムダの別の言い方か、恒等関数のことか。さらに、ドキュメントが示唆するような生の文字列だけに比べて、この方法論 (それが何であれ) の利点は何なのか疑問に思っています。

私が見た Python ドキュメントでそのような関数について言及しているものは何もないので、これが本当に Python に関する質問なのか、それとも Mercurial に関する質問なのかはわかりません。

この構造を使用する 2 つの例を次に示します (cmdtableファイルの下部にある辞書を参照してください)。

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

php - 関数の魔法の関数__call()?

phpの魔法の関数__call()はクラスで使用されます。同様の魔法の関数はありますが、代わりに関数用ですか?__autoload()のように関数用です。

たとえば、このようなもの

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

php - 配列クラスのプロパティで__get()を使用して、クラスで自動伝播する

「$sessions」という配列を含むactiverecordモデルがあります。私がやりたいのは、次のようにインデックスが付けられるように、これを2D配列にすることです。

次に、クリームを上に追加して、ユーザーができるようにします。

そして、__getクラス変数( "$ sessions")のその位置にオブジェクトが既に存在するかどうかを理解し、プロパティをクラスに追加/編集するか、"Session"と呼ばれるその位置に新しいクラスを作成します。

配列のインデックスで__getを取得するためにPHPを(可能であれば)取得する方法について少し混乱しています。

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

python - Python組み込み関数と魔法の関数とオーバーライド

重複の可能性:
メタクラスのインターセプト オペレーター ルックアップ
新しいスタイル クラスで Python の「マジック」メソッドの呼び出しをインターセプトするにはどうすればよいですか?

次のコードを検討してください。

出力は私にとって驚くべきものでした:

  • str(a)マジックメソッドにマップされるべきで はありませんa.__str__()か?
  • custom を削除してもClassA.__str__()ClassA.__getattribute__()まだ呼び出しがキャッチされません。どうして?
0 投票する
1 に答える
17861 参照

php - Magento コレクションからデータを取得する

1 行のデータを含むコレクションがあります。私が次のことをすると、

以下のような配列が得られます。

しかし、私が行う$collection->getField1()と、未定義のメソッドと表示されます。私が知る限り、php マジック ゲッターはこのように動作するはずです。ではない?

foreach コンストラクトなしでこの値を取得する方法についてのアイデア。