問題タブ [redeclaration]
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.
javascript - JavaScript 変数を再宣言する目的はありますか?
私はJavaScriptが初めてです。
結果は次のとおりです。
がx
2 回目に宣言されると、未定義になるはずですが、以前の値が保持されます。この再宣言に特別な目的があるかどうかを説明してください。
c++ - C ++の継承:メンバーのスコープと可視性
これが許可されない理由を説明できますか?
これは?
どちらの場合も、で指定された1つのパブリック変数と1つのプライベート変数がa
ありclass B
ます。
今編集しました!
php - PHPの自動読み込み:'の防止は再宣言できません'すべての星座で?
質問
PHPに致命的なエラーを発生させるのではなく、クラスの再宣言を無視させる方法はありますか?または、少なくとも例外をスローしますか?(私はそれを簡単にキャッチして続行することができました(また、試行された自動ロードのログも記録します)。)
私はノーだと思います、そして致命的なエラーは致命的なエラーです-結局のところ、100のケースのうち99で、それは合理的に賢明な振る舞いです-そして私はおそらくそれがケースでトリガーされるインスタンスを修正する必要があります-ケースバイケース。しかし、多分私より賢い誰かがこれを理解しました。
「いったいなぜそんなことをしたいのか」と自問しているのなら、読み続けてください。
バックグラウンド
私は、Reflectionを使用して、使用されている関数とクラスに関する特定の情報を集約するツールに取り組んでいます。スクリプトの引数の1つは、自動ロードでReflectionの信頼性を高めるためのオプションのブートストラップファイルです(ReflectionExceptions
特定のファイルではクラスが不明であるため、キャッチされてフォールバックヒューリスティックがトリガーされることはありません)。
これで、ブートストラップはオートローダーを正常にロードし、スクリプトは意図したとおりに実行され、問題が発生するまで、何百ものファイルを文句なしに移動します。
PHPの致命的なエラー:62行目の/usr/share/php/PHPUnit/Framework/Constraint.phpでクラスPHPUnit_Framework_Constraintを再宣言できません
私には2つの問題があります:
1つは、何がこれを引き起こしているのかわかりません。使用するブートストラップを調整しましたが、使用するインクルードパスに応じて、「再宣言できません」と「ファイルを開けませんでした」が交互に表示されます。妥協点はありません。つまり、エラーが発生しないポイントはありません。それでも、私はまだ調査中です。(ただし、この問題は質問の内容ではありません。)
2つ、さらに重要なことに、この質問の主題につながるので、私はそれを捕まえる方法が必要です。カスタムエラーハンドラを作成しようとしましたが、sに対しては機能したくないようですFatal error
(ある程度賢明なことに、議論の余地があるかもしれません)。
私はこのツールをいつかオープンソースの世界にリリースするつもりですが、これは非常に容認できない振る舞いとして私を襲います。存在しないクラスのフォールバックヒューリスティックがあります-ヒューリスティックを過度に使用せずに、一度はあまり頻繁に宣言されるのではなく、一度宣言されることをお勧めします。つまり、ブートストラッパーを使用する機能。スクリプトを壊すことなく。これまで。オートローダーの歴史の中で最悪のオートローダーだとしても。
(強調するために:オートローダーの助けは必要ありません。それはこの質問の内容ではありません。)
php - 致命的なエラー:同じ行で発生していることを再宣言できません
私はしばらくの間このエラーと戦ってきました。エラーは関数のどこかにあり、同じ行で変数を再宣言できないとphpが言っています...奇妙です。どんな助けでも素晴らしいでしょう。
致命的なエラー:/home/bp-member-login-redirect/bpでbp_block_admin_init()(以前は/home/bp-member-login-redirect/bp-member-login-redirect-loader.php:31で宣言されていました)を再宣言できません-31行目のmember-login-redirect-loader.php
29〜31行目
実際に関数を呼び出す行(コードにこれらの行がある場合とない場合でエラーが発生します:
php - PHPで関数を上書きすることは可能ですか?
このような関数を宣言できますか...
そして、このように再宣言します...
そのように関数を上書きすることは可能ですか?
ともかく?
c++ - ローカル スコープでの C++ の複数の宣言
私の知る限り、C++ では、これらすべての宣言で同じ型を持っている限り、同じ名前を複数回宣言できます。type のオブジェクトを宣言するが、int
それを定義しない場合は、extern
キーワードが使用されます。したがって、以下は正しく、エラーなしでコンパイルされるはずです。
x
しかし、これを関数の内部に移動すると、コンパイラ (GCC 4.3.4) は、再宣言していて違法であると不平を言います。エラーメッセージは次のとおりです。
whereint x = 5;
は 9 行目、extern int x
は 8 行目です。
私の質問は次のとおりです。
複数の宣言がエラーであると想定されていない場合、この特定のケースでエラーになるのはなぜですか?
c - 特定のエラーを無視するか、エラーから警告に変更するようにEclipsegccコンパイラーを設定する方法
多くのCソースファイルとヘッダーファイルで構成されるプロジェクトをビルドする必要があります。プロジェクトは警告付きでxcodeでコンパイルされますが(これは問題ありません)、WindowsXPのEclipseでGNUgcc Cコンパイラを使用してコンパイルしようとすると、多くの「再宣言」および「ネストされた再定義」エラーが発生します。これらのエラーはすべて、いくつかの異なるヘッダーファイル内の列挙子のtypedefを参照しています。
これらの各ヘッダーファイルには、ファイル全体に適切な#ifndef /#define /#endifタグがありますが、1つのヘッダーファイルにそれぞれ他の複数のヘッダーファイルが含まれるように、同じ列挙子をtypedefします(typedefを複数のヘッダーにコピー/貼り付けします)。そのうち、同じ名前の同じ列挙型typedefを持っています。
これはxcodeで警告付きでコンパイルされると言われ、既存のコードを変更することは許可されていません。
xcodeで警告を表示してコンパイルするため、Eclipseでこれらのエラーを無視するか、警告に変更してコンパイルする方法を見つけようとしましたが、失敗しました。コンパイラが最初または最後の定義/宣言を使用するかどうかは関係ありません。それらは同一の再定義/再宣言です。
これを行う方法はありますか?
編集:エラーフラグを使用したコンパイル-Wall
javascript - var console の再宣言
JavaScript のエラー レポートを取得するために Hoptoad を使用していますが、最近、次のエラーが発生しました。
var console の再宣言
バックトレースはあまり役に立ちません:
「Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16」で発生したことは知っていますが、わかりませんコンソールが再宣言される方法。あなたはなにか考えはありますか?コンソールを宣言する方法は次のとおりです。
php - インスタンスと静的関数の再宣言
致命的なエラー: me::work() を再宣言できません
問題は、php がこのような再宣言を許可しない理由です。回避策はありますか?
objective-c - 読み取り専用のパブリック プロパティが、プライベート インターフェイスで readwrite として再宣言されました。もう少し理解する
Objective-C プログラミング言語ドキュメントのプロパティの再宣言の章を読みましたが、次のプロパティの再宣言について明確にしていただける方がいらっしゃいましたらお願いします。
@property
上記のキーワードと@synthesize
キーワードが次のコードを生成するかどうかを理解したいだけです。
そのため、コンパイラは最初の@property
宣言を見て、パブリック インターフェイスに getter メソッドを追加します...実装ファイルになると、同じプロパティの別の@property
宣言を見つけますが、プライベート インターフェイス内に readwrite 属性があり、ゲッターは既にパブリック インターフェイスに追加されているため、セッター メソッドのみを追加します。その後、@synthesize
キーワードが見つかり、両方の実装がプライベート実装セクションに追加されます。最初の@property
宣言の copy 属性は必要ありません。セッターは必要ありませんが、2 番目のプロパティの再宣言と一致するように指定する必要があります。私の考えは正しいですか?