PHP:class static
static关键词的一种常见用途是,当类的某个变量$var被定义为static时,那么$var就是类的变量。
这意味着:1,该类的任意一个实例对其进行修改,在该类的其它实例中访问到的是修改后的变量。
实例1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
<?php class test { static
public $errno = 100; public
function setErrno( $errno ) { self:: $errno
= $errno ; } public
function getErrno() { return
self:: $errno ; } } $t1 = new test(); $t2 = new test(); echo
$t1 ->getErrno(). "\n" ; $t1 ->setErrno(10); echo
$t1 ->getErrno(). "\n" ; echo
$t2 ->getErrno(). "\n" ; |
输出:
100 10 10
注意:test类的static变量$errno获取方式有两种:1)直接获取 test::$errno;2)通过类函数获取
这意味着:2,static变量不随类实例销毁而销毁;
实例2:
<?php class test { static public $errno = 100; public function setErrno($errno) { self::$errno = $errno; } public function getErrno() { return self::$errno; } } $t1 = new test(); $t2 = new test(); echo $t1->getErrno()."\n"; $t1->setErrno(10); echo $t1->getErrno()."\n"; echo $t2->getErrno()."\n"; unset($t1, $t2); echo test::$errno."\n";
输出:
100 10 10 10
实例2的最后两行,虽然实例$t1和$t2已经被主动销毁,但是仍然static变量$errno仍存在。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。