最新消息: 新版网站上线了!!!

php static静态变量的运用

function Test()
{
 
$w3sky = 0;  //普通变量
 
echo $w3sky.'<br/>';
 
$w3sky++;
 
}
 
echo Test();  //输出0
?>
 
 
 
<?PHP
/*
static修饰的变量只被初始化一次,
并且保持最近的值,哪怕创建它的函数已经结束,
这个变量也不会被释放,下次调用是同一个地址,所以里面的值是上次的。
 
静态变量只存在于函数作用域内,静态变量只存活在栈中
 
一般的函数内变量在函数结束后会释放,比如局部变量,
静态变量会保存已有的变量结果,下次再调用时,该变量的值会保留下来。
 
如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名
如果在类外访问: 有一种方法 类名::$静态变量名
*/
function Test()
{
    static $count = 0;
 
    $count=$count+2;
 
    echo $count.',';
 
    if ($count <10)
    {
        Test();
    }
}
 
echo  Test();
//结果集==>2,4,6,8,10,
 
?>
 
 
<?PHP
 
class Child
{
 
    public $name;
     
    public static $nums=0;  //定义并初始化一个静态变量 $nums 参考链接:php静态变量初始化
 
    function __construct($name)
    {
        $this->name=$name;
    }
 
    public function join_game()
    {
        //self::$nums 使用静态变量
        self::$nums+=1;  //如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名
 
        echo $this->name."加入堆雪人游戏".'<br/>';
    }
}
 
//创建三个小孩
$child1=new Child("李逵");
 
$child1->join_game();
 
$child2=new Child("张飞");
 
$child2->join_game();
 
$child3=new Child("唐僧");
 
$child3->join_game();
 
//看看有多少人玩游戏
echo "<br/> 有这".Child::$nums; // 如果在类外访问: 有一种方法 类名::$静态变量名
 
/**结果集==>
李逵加入堆雪人游戏
张飞加入堆雪人游戏
唐僧加入堆雪人游戏
 
有这3
*/
?>

转载请注明:谷谷点程序 » php static静态变量的运用