問題タブ [scope-resolution]
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 - メソッドにアクセスするさまざまな方法
クラス内のメソッドにアクセスするには、2つの異なる方法があることを確認しました。動作に違いはありますか、それとも同じアクションの純粋に代替の構文ですか?
c++ - 別の名前空間内からのC++グローバル名前空間アクセス
以下のC++コードでfoobar
は、最初に単一のdouble
パラメーターに対して定義され、次にタイプがの単一のパラメーターに対して定義されていますFoo
。どちらもグローバル名前空間内で定義されます。
one
名前空間内で、foobar
タイプの単一のパラメーターを使用して、のさらなるオーバーロードが定義されますBar
。このバージョンのから、引数(42.0)を使用したfoobar
への修飾されていない呼び出しは失敗します。今回は(::)スコープ解決演算子で修飾され、引数も指定された、への同様の呼び出しは成功します。foobar
double
foobar
double
一方、foobar
型の引数を持つ、への修飾されていない呼び出しFoo
は成功します。スコープ解決演算子によって修飾されfoobar
た引数付きのへの呼び出しも成功します。Foo
2つのシナリオの動作が異なるのはなぜですか?私はgcc4.7とclang++3.2の両方を使用しています。
php - スコープ解決演算子使用時に継承クラスのクラス名を取得 (::)
重複の可能性:
PHP get_class の機能
小さなORM風のクラスセットの場合、次のものがあります。
このコードが出力されることを期待します:
しかし、代わりに、それは印刷されrecords
ます。を試してみself::table()
ましたが、同じ結果が得られます。
コメントのいくつかの質問の後、編集 table()
は、クラスの名前をそのオブジェクトが存在するテーブルに単純にマップするOrder
メソッドです。存在しません!)。を呼び出すと、テーブルではなく、テーブルでも、テーブルでも検索されることを期待しています。orders
Payment
payments
records
Payments::find()
payments
records
orders
私は何を間違っていますか?::が定義されたクラスではなく、::が呼び出されたクラスのクラス名を取得するにはどうすればよいですか?
重要な部分はおそらくget_class()
、適切なクラス名を返すことができないことです。
php - 継承されたクラスからプライベート メソッドを呼び出す
PHPの単純なORMにフックシステムを実装したい:
これにより、致命的なエラーが発生します。
致命的なエラー: コンテキスト 'Record' からプライベート メソッド Payment::before_save() を呼び出します
理にかなっています。
スコープを public に変更することもできましたが、それは醜いようです: 誰も Payment 以外は と関係がありませんbefore_save()
。プライベートのままにしておくのが最善です、IMHO。
Record から継承するクラスで Record 呼び出しをプライベート メソッドにするにはどうすればよいですか?
php - PHPで親クラスのメソッドを呼び出す方法
これは動作するコードですが、別のオブジェクト(コメント付き)を使用せずに、オブジェクトの使用方法を$foo
どのように使用できるかを知りたいです。オブジェクト指向プログラミングの概念は初めてなので、質問するのは難しいかもしれませんが、実際には見つけることができません:(printItem()
class Foo
$bar
私はスコープ解決演算子を使用してを使用していますprintItem()
がFoo class
、この機能を使用できるのはいつですか?オブジェクトの作成の使用は何ですか?適切なコーディング環境でスコープ解決演算子を使用する場合。
c++ - ::new とはどういう意味ですか?
MS directX 11 DXUT の例を調べると、次のコードが表示されました。
これは、私のバージョンの DXSDK (June2010) の 428 行目の DXUTmisc.h にあります。私はそれについて疑問に思っています::新しいこと....私はスタックオーバーフローでGoogleと検索しようとしていますが、検索バーに「::new」と入力すると、検索エンジンが2つのコロンを破棄しているようです... .
php - 動的変数に依存するモデルタイプの参照中に解決演算子でエラーが発生しました(PHP 5.2)
背景情報:
共通の関数を子クラスから拡張元の基本クラスに移動することで、Yiiアプリの構造を単純化しようとしています。
loadModel($id)
関数をユーザー(子)コントローラーからベースコントローラーに移動しました。
以前は、UserController.phpで。これは機能します:
その後、上記の関数を削除し、UserControllerなどに継承されているController.phpに配置しました。
問題:
PHP 5.4.4を実行しているローカルPCでこれを試しましたが、これはPHP 5.2を実行しているテストサーバーにアップロードされると、HTTPエラー500(内部サーバーエラー)がスローされます。エラーログを表示すると、エラーはエラーでした。これは、3行目の解決演算子PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
を参照しています。
質問:
- この場合、PHP 5.2で解決演算子が失敗する理由は何ですか?と、
- これを同じ効果で機能させるための回避策はありますか?
=================
追加情報:
私が使用しているグローバルmodelname関数は、モデル名を返します。つまり、「User」:
ruby-on-rails - フォルダ名を名前空間として使用するRails 3は、初期化されていない定数エラーをスローします
アプリを rails 2.3 から 3.0にアップグレードしようとしていますが、ファイルがあります
を含む
Utility::Interface::Import
ファイルパスにはフォルダー名が含まれていると思いますが、名前空間として使用されています
このコードは Rails 2.3 では問題なく動作しますが、Rails 3.0.6 で実行しようとすると NameError がスローされます。
参考までに: rails 2.3 は ruby 1.8.7 を使用し、rails 3.0.6 は ruby 1.9.2 を使用します。
私の理解が正しくない場合は修正してください
c++ - this->field と Class::field の違いは?
C++で何か疑問に思っています。
次のコードを認めます。
クラス内で と の間に違いはthis->bar
ありFoo::bar
ますか? 無効なケースはありますか?
c++ - オーバーライドされた変数でスコープ解決が機能しないのはなぜですか?
d.B::num
以下のコードサンプルを見たとき、同じだと思ったのb.num
ですが違います。独自のアドレスを持つ別の変数のようです。実行ボタンをクリックすると、3 つの変数がそれぞれ表示され、それぞれに関連付けb.num
られた値 (それぞれ 3、4、5) が表示されます。d.num
d.B::num
どうしてこんなことに?そしてd.B::num
、それが と同じでない場合、ここには正確には何がありますb.num
か?