static关键字在php中的作用
本篇文章为大家展示了static关键字在php中的作用,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不会被实例化到对象中,也就是说我们不需要实例化一个类,就可以通过类来访问静态成员
在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。
static关键字的作用如下:
1、放在函数内部修饰变量;
2、放在类里修饰属性或方法;
3、放在类的方法里修饰变量;
4、修饰全局作用域的变量;
关键字所表示的不同含义如下:
1、修饰类的方法里面的变量
如下所示:
<?phpclass Person { static function tellAge() { static $age = 0; $age++; echo "The age is: $age"; }}echo Person::tellAge(); //output 'The age is: 1'echo Person::tellAge(); //output 'The age is: 2'echo Person::tellAge(); //output 'The age is: 3'echo Person::tellAge(); //output 'The age is: 4'?>
2、在函数执行完后,变量值仍然保存
如下所示:
<?phpfunction testStatic() { static $val = 1; echo $val; $val++;}testStatic(); //output 1testStatic(); //output 2testStatic(); //output 3?>
3、修饰属性或方法,可以通过类名访问,如果是修饰的是类的属性,保留值
如下所示:
<?phpclass Person { static $id = 0; function __construct() { self::$id++; } static function getId() { return self::$id; }}echo Person::$id; //output 0echo "<br/>"; $p1=new Person();$p2=new Person();$p3=new Person(); echo Person::$id; //output 3?>
4、修饰全局作用域的变量,没有实际意义
如下所示:
<?phpstatic $name = 1;$name++;echo $name;?>另外:考虑到PHP变量作用域<?phpinclude 'ChromePhp.php'; $age=0;$age++; function test1() { static $age = 100; $age++; ChromePhp::log($age); //output 101} function test2() { static $age = 1000; $age++; ChromePhp::log($age); //output 1001} test1();test2();ChromePhp::log($age); //outpuut 1?>
可以看出,这3个变量是不相互影响的。另外,PHP里面只有全局作用域和函数作用域,没有块作用域。
上述内容就是static关键字在php中的作用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。