PHP对象动态绑定,这样的术语存在吗


PHP Object Dynamic Binding, Does such term exist?

我知道,如果$var从未被声明,那么它可以用$var->mysubvar=1这样的子对象来声明;但是如果提前提到$var="123",那么$var->mysubvar=1将导致错误。由于提前宣布

我听说它被命名为"动态绑定"。但当我真正研究这个术语时,我并没有在PHP手册中找到与这个场景和行为相匹配的描述。

这种行为称为"动态绑定"吗?它有一个特定的名字吗?但如果是这个名字,为什么PHP手册没有包含这样的技术或行为?

问题是,描述这样的行为的名称是什么,即不需要提前声明对象,并且如果声明了子对象,则会自动生成对象。(例如,javascript将不允许在不首先执行varmyvar=1(或等效操作)的情况下操作对象。)

答案:啊,是的,它确实涉及动态类型。什么是动态打字?

您提到的问题与动态类型有关,而不一定是动态绑定。关于变量类型的PHP文档涵盖了这一点。

变量的类型通常不是由程序员设置的;相反,它是由PHP在运行时根据使用该变量的上下文来决定的。

示例抛出错误的原因是类型不匹配
例如,假设未设置$var,则执行$var->mysubvar = 1将创建$var作为对象。尝试使用$var = 5将导致错误,因为您以前的命令指定$var将是一个对象,而不是标量。