在PHP中,“";“最终静态”;及;常数;?
我意识到这个问题已经被其他不同的编程语言问到了。。。但是在PHP域中,这不是一个100%的指标,所以我要问这个问题在PHP中,“";“最终静态”;及;常数;?,php,variables,static,constants,Php,Variables,Static,Constants,我意识到这个问题已经被其他不同的编程语言问到了。。。但是在PHP域中,这不是一个100%的指标,所以我要问这个问题 有人能告诉我,特别是在PHP中,“最终静态”和“常量”之间有什么区别吗?它们没有任何共同点,它们创建了完全不同的东西const声明一个常量final static声明一个静态(可以在没有类实例的情况下调用)和final(不能被子类重写)的方法static可以单独用于定义类范围的变量,该变量不是常量(但变量不能是final)。final不用于类属性,仅用于类和方法。这意味着该方法不能
有人能告诉我,特别是在PHP中,“最终静态”和“常量”之间有什么区别吗?它们没有任何共同点,它们创建了完全不同的东西
const
声明一个常量final static
声明一个静态(可以在没有类实例的情况下调用)和final(不能被子类重写)的方法static
可以单独用于定义类范围的变量,该变量不是常量(但变量不能是final
)。final
不用于类属性,仅用于类和方法。这意味着该方法不能被重写,或者该类不能从中继承const
是PHP等价于Javafinal
变量。final
方法或类不能由子类修改。这可以防止类继承、方法重写和/或方法的重新定义
只有类内的类定义和/或方法才能定义为
最终版
static
将类方法或属性声明为静态值,以便在不实例化对象的情况下访问它们。它们在父类和子类之间共享
类定义不能是静态的
,而不像最终的
const
它们为类创建一个常量值。常量值将被更改,并且不能由父类或子类中的方法更改
类常量是为类的每个实例分配的
const
本身就是一个类型说明符。它不能与public
/private
/static
等一起使用。前面提到的final
可以与任何方法或类定义一起使用,因此;适用于所有这些<代码>静态不能应用于类定义,但可以用于类属性
更新
自PHP 7.1.0以来,类常量允许使用。
总而言之,
最终静态
不能用于定义类似以下内容:
class X {
final static x = 5;
}
这就是为什么您有一个常量
class X {
final static x = 5;
}