gpt4 book ai didi

php - 子类覆盖父静态属性

转载 作者:行者123 更新时间:2023-12-04 18:10:18 26 4
gpt4 key购买 nike

如果我错了请告诉我,但我很确定这是 PHP 中的错误。

<?php

class One {

public static $var = 'hi';
}

class Two extends One {

public static function set($var) {
static::$var = $var;
}
}

Two::set('bye');

var_dump(One::$var);
// bye

当我非常确定它应该输出“hi”时,该脚本输出“bye”。你怎么认为?

不想在子类中重新声明它。

最佳答案

OP 编辑​​的问题,这是他提到他不想重新声明属性之前的答案

这是因为 TwoOne 共享 $var

如果你这样写,那么你会得到想要的输出

class One {

public static $var = 'hi';
}

class Two extends One {

public static $var = 'hi';

public static function set($var) {
static::$var = $var;
}
}

Two::set('bye');

// you get hi
var_dump(One::$var);
// you get bye
var_dump(Two::$var);

关于php - 子类覆盖父静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com