PHP 5: const vs static
2022-08-30 06:30:09
在 PHP 5 中,使用 和 之间有什么区别?const
static
什么时候适合?如果有的话,它扮演什么角色和作用?public
protected
private
在 PHP 5 中,使用 和 之间有什么区别?const
static
什么时候适合?如果有的话,它扮演什么角色和作用?public
protected
private
在类的上下文中,静态变量位于类作用域(而不是对象)作用域上,但与常量不同,它们的值可以更改。
class ClassName {
static $my_var = 10; /* defaults to public unless otherwise specified */
const MY_CONST = 5;
}
echo ClassName::$my_var; // returns 10
echo ClassName::MY_CONST; // returns 5
ClassName::$my_var = 20; // now equals 20
ClassName::MY_CONST = 20; // error! won't work.
公共,受保护和私有在consts方面无关紧要(它们总是公共的);它们仅对类变量(包括静态变量)有用。
编辑:重要的是要注意,PHP 7.1.0引入了对指定类常量可见性的支持。
应该提出的最后一点是,const总是静态和公开的。这意味着您可以从类中访问const,如下所示:
class MyClass
{
const MYCONST = true;
public function test()
{
echo self::MYCONST;
}
}
从类外,您可以像这样访问它:
echo MyClass::MYCONST;