问题标签 [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.

0 投票
9 回答
3206 浏览

javascript - 重新声明 JavaScript 变量有什么目的吗?

我是 JavaScript 新手。

结果是:

x第二次声明它应该是未定义的,但它保持以前的值。请说明此重新声明是否有任何特殊目的。

0 投票
4 回答
1187 浏览

c++ - C++ 继承:成员的范围和可见性

你能解释一下为什么不允许这样做吗?

虽然这是?

a在这两种情况下,我们都有一个名为in 的公共变量和一个私有变量class B


现在编辑!

0 投票
3 回答
8612 浏览

php - PHP自动加载:防止'无法重新声明'在所有星座中?

问题

有没有一种方法可以让 PHP忽略类的重新声明而不是抛出一个 FATAL ERROR?或者至少抛出一个异常?(然后我可以轻松地抓住它并继续(以及记录尝试的自动加载)。)

我猜不是,一个致命错误是一个致命错误——毕竟,在 100 个案例中有 99 个,这是相当明智的行为——我可能只需要修复它在案例中触发的实例——以个案为基础。但也许比我聪明的人已经想通了。


如果你问自己“你到底为什么要这么做? ”,请继续阅读。

背景

我正在开发一种工具,该工具使用反射来聚合有关使用的函数和类的特定信息。脚本的参数之一是一个可选的引导文件,以使反射在自动加载时更加可靠(更少ReflectionExceptions最终被捕获并触发回退启发式,因为特定文件中的类是未知的)。

现在,引导程序很好地加载了自动加载器,并且脚本按预期运行,毫无怨言地通过数百个文件,直到我遇到障碍:

PHP 致命错误:无法在第 62 行的 /usr/share/php/PHPUnit/Framework/Constraint.php 中重新声明类 PHPUnit_Framework_Constraint

我有两个问题:

一,我不知道是什么触发了这个。我已经调整了使用的引导程序,但仅在“无法重新声明”和“无法打开文件”之间交替,具体取决于使用的包含路径。没有中间地带,即没有不发生错误的点。不过,我还在调查。(不过,这个问题不是问题所在。)

二,更重要的是,并导致这个问题的主题,我需要一种方法来抓住它。我试过编写一个自定义错误处理程序,但它似乎不想为Fatal errors 工作(有点明智,有人可能会争辩)。

我打算在某个时候将该工具发布到开源世界中,这让我觉得这是一种非常不可接受的行为。对于不存在的类,我有一个后备启发式 - 我宁愿他们被声明一次太少而不是一次太频繁,但不要过度使用启发式,也就是说,我确实想提供使用引导程序的能力。在不破坏脚本的情况下。曾经。即使它是自动加载器历史上最糟糕的自动加载器。

(强调一下:我不想帮助我的自动装载机。这不是这个问题的目的。

0 投票
5 回答
4369 浏览

php - 致命错误:无法重新声明发生在同一行

我一直在与这个错误作斗争一段时间。错误在函数中的某个地方我现在有 php 告诉我它不能在同一行重新声明一个变量......奇怪。任何帮助都会很棒。

致命错误:无法在 /home/bp-member-login-redirect/bp 中重新声明 bp_block_admin_init()(之前在 /home/bp-member-login-redirect/bp-member-login-redirect-loader.php:31 中声明) -member-login-redirect-loader.php 第 31 行

第 29-31 行

实际调用函数的行(我在代码中有或没有这些行时得到错误:

0 投票
10 回答
134959 浏览

php - 是否可以覆盖PHP中的函数

你能声明一个这样的函数吗...

然后重新声明它有点像这样......

是否有可能以这种方式覆盖函数?

反正?

0 投票
1 回答
393 浏览

c++ - 本地范围内的 C++ 多个声明

据我所知,在 C++ 中,可以多次声明同一个名称,只要它在所有这些声明中具有相同的类型。要声明类型的对象int,但不定义它,使用extern关键字。所以以下应该是正确的并且编译没有错误:

但是一旦我将它移到函数内部,编译器(GCC 4.3.4)就会抱怨我正在重新声明x它是非法的。错误消息如下:

其中int x = 5;在第 9 行,extern int x在第 8 行。

我的问题是:
如果多个声明不应该是错误,那么在这种特殊情况下为什么会出现错误?

0 投票
1 回答
1508 浏览

c - 如何设置 Eclipse gcc 编译器以忽略特定错误或从错误变为警告

我需要构建一个由许多 C 源文件和头文件组成的项目。该项目在带有警告的 xcode 中编译(这很好),但是当我尝试在 Windows XP 上的 Eclipse 中使用 GNU gcc C 编译器编译它时,我得到了许多“重新声明”和“嵌套重新定义”错误。这些错误都引用了几个不同头文件中枚举数的 typedef。

这些头文件中的每一个在整个文件周围都有适当的#ifndef/#define/#endif 标签,但它们 typedef 相同的枚举数(想想将 typedef 复制/粘贴到多个头文件中),这样一个头文件将 #include 每个其他头文件其中具有相同名称的相同枚举数 typedef。

我被告知在 xcode 中编译时会出现警告,并且不允许我修改现有代码。

当它在 xcode 中编译时出现警告时,我试图找到一种方法让 Eclipse 忽略这些错误或将它们更改为要编译的警告,但没有成功。编译器使用第一个还是最后一个定义/声明并不重要。它们是相同的重新定义/重新声明。

有没有办法做到这一点?

编辑:使用错误标志 -Wall 进行编译

0 投票
1 回答
1982 浏览

javascript - 重新声明 var 控制台

我正在使用 Hoptoad 来获取我的 JavaScript 的错误报告,最近我收到了这个错误:

重新声明 var 控制台

回溯不是很有用:

我知道它发生在“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”上,但我不知道如何重新声明控制台。你有什么想法?这是我声明控制台的方式:

0 投票
2 回答
3194 浏览

php - 实例和静态函数的重新声明

致命错误:无法重新声明我::work()

问题是,为什么 php 不允许像这样重新声明。有什么解决方法吗?

0 投票
1 回答
2021 浏览

objective-c - Readonly 公共属性在私有接口中重新声明为 readwrite .. 了解更多

我已经阅读了The Objective-C Programming Language文档中的Property redeclaration一章,我希望你们中的一些人可以澄清以下属性重新声明:

我只是想了解上述@property@synthesize关键字是否产生以下代码:

因此,发生的情况是编译器看到第一个@property声明并在公共接口中添加了一个 getter 方法......然后,当涉及到实现文件时,它会@property在私有接口中找到相同属性但具有 readwrite 属性的另一个声明,并且只添加了一个 setter 方法,因为 getter 已经添加到公共接口。然后,@synthesize找到关键字并将两个实现都添加到私有实现部分。第一个@property声明的复制属性不是必需的,因为那里不需要setter,但我们必须指定它与第二个属性重新声明一致。我的想法对吗?