标签: redeclaration

是否可以覆盖PHP中的函数

你能宣布一个这样的函数......

function ihatefooexamples(){
  return "boo-foo!";
};
Run Code Online (Sandbox Code Playgroud)

然后重新宣布它有点像这样......

if ($_GET['foolevel'] == 10){
  function ihatefooexamples(){
    return "really boo-foo";
  };
};
Run Code Online (Sandbox Code Playgroud)

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

无论如何?

php function redeclaration

64
推荐指数
6
解决办法
11万
查看次数

如何解决编译器枚举重新声明冲突

请考虑以下C++枚举:

enum Identity
{
    UNKNOWN   = 1,
    CHECKED   = 2,
    UNCHECKED = 3
};

enum Status
{
    UNKNOWN    = 0,
    PENDING    = 1,
    APPROVED   = 2,
    UNAPPROVED = 3
};
Run Code Online (Sandbox Code Playgroud)

编译器将这两个UNKNOWN项冲突并抛出此错误:

错误:重新声明'UNKNOWN'

我能够解决这个错误改变的一个UNKNOWNUNKNOWN_a,但我想不会更改名称.

如何在更改enum项目名称的情况下解决此冲突?

c++ enums enumeration compiler-errors redeclaration

11
推荐指数
3
解决办法
6089
查看次数

PHP自动加载:在所有星座中防止"无法重新声明<class>"?

有没有办法让PHP 忽略类的重新声明,而不是barf up a FATAL ERROR?或者至少抛出异常?(我可以很容易地抓住它然后继续(以及尝试自动加载的日志).)

我猜不是,致命的错误是一个致命的错误 - 毕竟,在百分之九十九的案例中,这是一个相当明智的行为 - 我可能只需要修复它在一个案件上被触发的实例 - 以个案为基础.但也许比我聪明的人有这个想法.


如果你问自己" 为什么你想要这样做? ",请继续阅读.

背景

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

现在,bootstrapping正好加载了自动加载器,脚本按预期运行,在没有任何投诉的情况下移动了几百个文件,直到我遇到障碍:

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

我有两个问题:

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

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

我打算在某个时候将这个工具发布到开源世界,这让我感到非常不可接受.对于不存在的类,我有一个后备启发式 - 我宁愿它们过于频繁地被宣布过一次,但是没有过度使用启发式,也就是说,我确实想要提供使用引导程序的能力.不破坏脚本.永远.即使它是自动加载器历史上最差的自动加载器.

(要强调:我不想帮助我的自动加载器.这不是这个问题的内容.)

php autoload fatal-error redeclaration

10
推荐指数
1
解决办法
7986
查看次数

财产声明 - ivar和getter值不匹配

我对财产重新申报表示怀疑

概述:

  • class"A"是具有readonly属性int n1的父类;
  • class"B"是子类,它将属性重新声明为读写
  • 使用类"B"的setter,属性值设置为20
  • 当我使用getter和实例变量打印值时,我似乎得到不同的值

注意事项: - 内存管理= ARC(自动引用计数)

题:

  • 当我打印self.n1和_n1的值时,为什么我会得到不同的值?
  • 我的预期行为和实际行为与原因不符(请向下滚动以查看实际与预期的对比)?

代码:(在单独的文件中)

#import<Foundation/Foundation.h>

@interface A : NSObject

@property (readonly) int n1;

- (void) display;

@end
Run Code Online (Sandbox Code Playgroud)

上午

#import "A.h"

@implementation A

@synthesize n1 = _n1;

- (void) display
{
    printf("_n1     = %i\n", _n1);                  //I expected _n1 and self.n1 to display the same value
    printf("self.n1 = %i\n\n", self.n1);            //but they seem to display different values
}

@end
Run Code Online (Sandbox Code Playgroud)

BH

#import"A.h"

@interface B : A

@property (readwrite) int n1;

@end …
Run Code Online (Sandbox Code Playgroud)

inheritance properties objective-c redeclaration

10
推荐指数
1
解决办法
1590
查看次数

Swift 1.2重新声明Objective-C方法

我刚从swift 1.1更新到swift 1.2并得到编译错误:

Method 'setVacation' redeclares Objective-C method 'setVacation:'
Run Code Online (Sandbox Code Playgroud)

这里有一些代码:

var vacation : Vacation?  
func setVacation(_vacation : Vacation)
{...}
Run Code Online (Sandbox Code Playgroud)

但我需要打电话 setVacation

有什么建议如何解决这个问题?

properties redeclaration swift

10
推荐指数
1
解决办法
3029
查看次数

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

我是JavaScript的新手.

<html>
<body>
<script type="text/javascript">
var x=5;
document.write(x);
document.write("<br />");
var x;
document.write(x);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果是:

5
5
Run Code Online (Sandbox Code Playgroud)

何时x声明第二次它应该是未定义的,但它保留了先前的值.请解释这种重新声明是否有任何特殊目的.

javascript variables redeclaration

6
推荐指数
2
解决办法
2790
查看次数

Laravel 5.0,无法重新声明类App\models\Category

我最近将我的项目从laravel 4.2升级到laravel 5.0,并且遇到了一些错误.

我没有在4.2版本中定义任何名称空间,但如此处所示,

我已经开始在我的代码中定义名称空间.我不知道我面临的问题是否与此有关,但是在这个过程的中间发生了.

运行代码时出现以下错误:

exception 'Symfony\Component\Debug\Exception\FatalErrorException' with
message 'Cannot redeclare class App\models\Category' in  
/Users/yash/summers/lightsCameraDinner/lcd_updated/app/models/Category.php:19
Run Code Online (Sandbox Code Playgroud)

这是我的Category.php:

<?php namespace App\models;

use Eloquent;

class Category extends Eloquent {

  protected $table = 'categories';
  protected $guarded = array('id');

  // Defining 'Many to Many' Relationship with 'VendorProfile' Model
  public function clients() {
    return $this->belongsToMany('Client');
  }

  // Defining 'One to Many' Relationship with 'Job' Model
  public function jobs() {
    return $this->hasMany('Job');
  }
}
Run Code Online (Sandbox Code Playgroud)

我在SO上搜索了类似的错误,但没有发现任何错误.

这是我的控制器中在"/"路由上调用的函数.

    public function getIndex() {
    $categories = Category::all();

    $messages = …
Run Code Online (Sandbox Code Playgroud)

model runtime-error redeclaration laravel-5

6
推荐指数
1
解决办法
2万
查看次数

具有相同名称的变量和函数在块内返回错误

如果我们声明一个变量和一个具有相同名称的函数,则它接受重新声明。但是,当我们在一个块内执行相同的操作时,它会显示重新声明错误
码:

var x;
function x() {}; // no error.
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我得到了错误。

{
  var inside; // re-declaration error.
  function inside() {};
}
Run Code Online (Sandbox Code Playgroud)

预期结果应该没有错误。

javascript var function redeclaration hoisting

6
推荐指数
2
解决办法
99
查看次数

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

你能解释为什么不允许这样做,

#include <stdio.h>

class B {
private:
    int a;
public:
    int a;
};

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

虽然这是?

#include <stdio.h>

class A {
public:
    int a;
};

class B : public A{
private:
    int a;
};

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我们有一个公钥和一个名为私有变量aclass B.


现在编辑!

c++ inheritance class redeclaration

5
推荐指数
1
解决办法
1179
查看次数

忽略打字稿中解构的多个结果

我正在使用打字稿解构,如下所示:

const props = new Map<User, [Name, Age, Location, Gender]>();
props.set(bill, [n, a, l, g]);

// ...

// Want to access location and gender of bill.
const [n, a, l, g] = props.get(bill);
console.log(l + g);
Run Code Online (Sandbox Code Playgroud)

但这违反了noUnusedLocals编译器选项,所以我真正想要的是:

const [_, _, l, g] = props.get(bill);
Run Code Online (Sandbox Code Playgroud)

但这违反了块作用域变量(两个名为 的变量_)的重新声明。

处理这个问题的最佳方法是什么?也许解构在这里只是错误的选择。

destructuring redeclaration typescript tsc

5
推荐指数
1
解决办法
1504
查看次数