在 PHP 5 中,使用和使用有什么区别const
and static
?
分别什么时候合适?以及起什么作用public
, protected
and private
玩——如果有的话?
在类的上下文中,静态变量位于类范围(而不是对象)范围内,但与 const 不同,它们的值可以更改。
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.
public、protected 和 private 在常量方面是不相关的(它们总是公共的);它们仅对类变量有用,包括静态变量。
- 公共静态变量可以通过 ClassName::$variable 在任何地方访问。
- 受保护的静态变量可以由定义类或扩展类通过 ClassName::$variable 访问。
- 私有静态变量只能由定义类通过 ClassName::$variable 访问。
编辑:重要的是要注意PHP 7.1.0 引入了对指定类常量可见性的支持 http://php.net/manual/en/migration71.new-features.php#migration71.new-features.class-constant-visibility.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)