【发布时间】:2015-02-09 03:54:54
【问题描述】:
问题是,假设我们有三个类 A、B 和 C。B 和 C 继承自 A。
<?php
class A{
public static function update(){
static::$id = 1;
}
}
class B extends A{
public static $id_B;
}
class C extends A{
public static $id_C;
}
A::update();
?>
由于某种原因,B和C中的id名称不同。 B 是 id_B,C 是 id_C。类 A 是一种接口,所以它只知道继承的类 B 和 C 应该有一个变量 $id。 A 想将 $id 更新为 1。我想要尝试将 $id_B 和 $id_C 更新为 1。我尝试了几种方法,例如设置如下变量:
class A{
public static function update(){
static::$$id_name = 1;
}
}
class B extends A{
public static $id_name="id_B";
public static $id_B;
}
但它不起作用。那么有人可以帮我解决这个设计吗?
【问题讨论】:
-
我认为你把一切都复杂化了。除非您需要将
B::$id与B::$id_B分开使用,否则定义后者的原因是什么?只需使用$id。 -
我想写一个数据库类作为A,这样如果我的伙伴想控制数据库,他可以只创建像B和C这样的继承类来对数据库进行CRUD,而无需编写相同的CRUD代码。但问题是数据库中的 id 名称可能不同,例如 id_student、id_player。所以这让我很挣扎。
标签: php class reference variable-variables late-static-binding