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";

  输出:

PHP:class static
100
10
10
PHP:class static

注意:test类的static变量$errno获取方式有两种:1)直接获取 test::$errno;2)通过类函数获取

这意味着:2,static变量不随类实例销毁而销毁;

实例2:

PHP:class static
<?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";
PHP:class static

输出:

PHP:class static
100
10
10
10
PHP:class static

实例2的最后两行,虽然实例$t1和$t2已经被主动销毁,但是仍然static变量$errno仍存在。

PHP:class static,布布扣,bubuko.com

PHP:class static

上一篇:ASP.NET自定义控件组件开发 第一章 待续


下一篇:关于发布webservice提示The test form is only available for requests from the local machine