文章目录
前言
本文就介绍了PHP类Static(静态)关键词的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Static(静态)关键词
- 声明类属性或方法为静态,就可以不实例化类而直接访问。
- 静态属性不能通过一个类已实例化的对象来访问
- 静态方法可以通过一个类已实例化的对象来访问
- 由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
- 静态属性不可以由对象通过 -> 操作符来访问。
- 静态属性只能被初始化为文字或常量,不能使用表达式。
class MyClass1
{
public static $my_var = 'PHP';
public function fun1() {
return self::$my_var;
}
public static function staticfun() {
return self::$my_var;
}
}
print MyClass1::$my_var . "\n"; //不实例化,用范围解析操作符直接访问静态属性,输出PHP
print MyClass1::fun1() . "\n"; //不实例化,用范围解析操作符直接访问公共方法,输出PHP
print MyClass1::staticfun() . "\n"; //不实例化,用范围解析操作符直接访问静态方法,输出PHP
$foo = new MyClass1();
print $foo::$my_var . "\n"; //实例化,用范围解析操作符直接访问静态属性,输出PHP
print $foo::fun1() . "\n"; //实例化,用范围解析操作符直接访问公共方法,输出PHP
print $foo::staticfun() . "\n"; //实例化,用范围解析操作符直接访问静态方法,输出PHP
print $foo->my_var . "\n"; //实例化,不能用->直接访问静态属性,不输出PHP
print $foo->fun1() . "\n"; //实例化,用->直接访问公共方法,输出PHP
print $foo->staticfun() . "\n"; //实例化,用->直接访问静态方法,输出PHP