将静态变量与父级结合起来

发布于 2024-11-03 17:59:52 字数 241 浏览 4 评论 0原文

这就是我希望能够做到的:

class Test {
    public static $test = 'boo';
}

class Two extends Test {
    public static $test = parent::$test.'hoo';
}

// Two::$test == 'boohoo'

嗯,特别是组合 2 个数组,但这说明了这一点。

是否可以?

This is what I'd like to be able to do:

class Test {
    public static $test = 'boo';
}

class Two extends Test {
    public static $test = parent::$test.'hoo';
}

// Two::$test == 'boohoo'

Well, specifically combining 2 arrays, but this illustrates it.

Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深海夜未眠 2024-11-10 17:59:53

这是不可能的,因为在声明变量时无法评估任何内容。

类似:

class A {
    $seconds_in_a_day = 60*60*24; // invalid
    $seconds_in_a_day2 = 86400; // sour but valid
}

甚至无效。

您可以将其移至构造函数。

public function __construct() {
    self::$test = parent::$test.'hoo';
}

除此之外..只是不要这样做。为未来的自己节省大量工作并找到另一个更直观的解决方案:P

This isn't possible because you can't evaluate anything when declaring a variable.

Something like:

class A {
    $seconds_in_a_day = 60*60*24; // invalid
    $seconds_in_a_day2 = 86400; // sour but valid
}

is invalid even.

You can move it to the constructor.

public function __construct() {
    self::$test = parent::$test.'hoo';
}

Aside from all that .. just don't do it. Save your future self a lot of work and find another more intuitive solution :P

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文