php在不首先定义字段的情况下动态添加字段
所以在php中,您不必像java一样首先在类中定义字段,对吗 在java中,你不能说php在不首先定义字段的情况下动态添加字段,php,class,field,member,Php,Class,Field,Member,所以在php中,您不必像java一样首先在类中定义字段,对吗 在java中,你不能说 public class javac { int x; int y; public javaC() { this.z = 3; } } 但是在php中你能这么说吗 class phpC { $x; $y; public phpC() { $this->z = "omg"; } } php在这方面的文档是什么?这种行为的正确术语是什么?我不认为
public class javac {
int x;
int y;
public javaC() {
this.z = 3;
}
}
但是在php中你能这么说吗
class phpC {
$x;
$y;
public phpC() {
$this->z = "omg";
}
}
php在这方面的文档是什么?这种行为的正确术语是什么?我不认为它叫做动态添加字段。。可以在PHP中为未初始化的属性赋值。Java是严格的,PHP是松散的(goosey:) 其技术名称为“重载”。以下是文档:
+1我想补充一点,不要求您初始化属性并不意味着这不是一个好主意。我完全同意,除非您正在设置接口类。“接口类”。。。你的措辞有点混乱。。。实际接口不能包含成员变量,如果您尝试,将生成E_致命错误。抱歉打扰你了。。。答案很好:)哦,糟糕。。你是善良的,因为“接口类”是完全错误的。我指的是一个要重载的类,比如有目的地重载MySQL列名的属性,在这个类中,您事先不知道使用_set()函数的列名是什么。有一个技术名称吗?至于
\uu set()
案例,我相信正确的术语仍然是重载。一般来说,我会把你们所说的“接口类”称为抽象类。声明为抽象的类本身不能实例化,但可以为其子类提供具体的属性和方法(可以选择性地重写或扩展,只要它们不声明为private
)。您可以在抽象类中定义\u set
,然后它将以相同的方式在任何子类中访问各种未知属性名称。