php的静态成员static

2020-01-21  本文已影响0人  PENG先森_晓宇

静态变量静态方法常量是随着类的加载而加载的,而其他普通变量是随着类的实例化而加载的。

<?php
namespace App\learn;

class Home
{
    public static $old=1;

    public $num;

    public function user()
    {
        return self::$old;
    }
}
echo Home::$old."\n";
$home=new Home();
echo $home->user();

如下是传统php代码

<?php

namespace App\learn;

class User
{
    public static $a=0;
    public $b=0;

    public function home()
    {
        $this->b++;
        self::$a++;
    }
}

$user=new User();
$user->home();
echo "b是".$user->b."\n";
echo "a是".User::$a."\n";
$user=new User();
$user->home();
echo "b是".$user->b."\n";
echo "a是".User::$a."\n";

结果为

b是1
a是1
b是1
a是2

https://mp.weixin.qq.com/s/nTEkdrHM2bv3aRdj4mEQeg。为什么该文章的对象属性并没有释放?而是能一直复用呢?因为该类使用swoole的启动程序,php MyServer.php后该进程是一直在挂起的,也就是对象并没有释放,也就解释了其中对象属性也没释放了。

上一篇 下一篇

猜你喜欢

热点阅读