PHP 类的静态成员变量和普通成员变量对比

本文对比了PHP中静态成员变量与普通成员变量的区别,并通过示例演示了它们的行为差异,特别是关于静态方法访问变量的规定。

有很多人可能弄不清楚,在PHP中类的静态成员变量和普通成员变量有什么区别?

1、类的静态方法只能访问静态成员变量,而不能访问非静态成员变量

2、静态成员变量不需要实例化就能访问,且访问速度快一些

3、类的静态成员变量只属于这个类,但类的所有实例共享这个静态成员变量


一个由 c/c++编译过的程序占用的内存分为一下几个部分

(1)、栈区 stack :

              由编译器自动分配释放,存放函数的参数值,局部变量的值等。这个栈的操作方式类似于数据结构中的栈。栈区是在程序运行前就会分配好的,速度较堆要快

(2)、堆区 heap :

              一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,注意它与数据结构中的堆是两回事,分配方式类似于链表。是在程序运行时动态分配的,速度较栈慢

(3)、全局区(静态去)static :

             全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和静态变量又放在相邻的另一块区域中。程序结束后由系统释放。

(4)、文字常量区  :

            常量字符串放在这里。程序结束后由系统释放。

(5)、程序代码区 :

            存放函数体的2进制代码。


下面咱们一起来做个小例子:

class A{
    public static $a = 5;
    public $b = 4;
    public function getA(){
        return A::$a;
    }
    public function setA($val){
        A::$a = $val;
    }
    public function getB(){
        return $this->b;
    }
    public function setB($val){
        $this->b = $val;
    }
    public static function getbb(){
        return $this->a;
    }
}

$a = new A();
echo $a->getA();
$a->setA('aaaa');
echo '<br/>';
$b = new A();
echo $b->getA();
echo '<br/>';
$c = new A();
echo $c->getA();
上面的执行结果会是:5  aaaa  aaaa

类的对象$a将类的静态成员变量值修改后,由于类的所有实例对象共享静态成员变量,所以其他对象在获取静态成员变量值时就会发生改变。

$a = new A();
echo $a->getB();
$a->setB('aaaa');
echo '<br/>';
$b = new A();
echo $b->getB();

上面的执行结果是:4 4

echo A::getbb();

会发生报错,因为类的静态方法只能访问静态成员变量

相信看到这里大家应该会明白了吧!

错误之处欢迎指出!


【课程报告内容】摘要第1章 绪论第2章 系统总体设计方案第3章 系统硬件设计第4章 系统软件设计第5章 系统调试与测试结果分析第6章 总结与展望参考文献随着第五代移动通信(5G)的商用部署,面向未来网络的第六代移动通信(6G)研究已拉开序幕。为了满足千倍级的流量增长与无处不在的万物智联需求,通信系统需要更高的传输速率、更低的时延与更大的连接密度。毫米波频段凭借其丰富的频谱资源,成为实现上述目标的必然选择。然而,毫米波信号在空间中传播时路径损耗大,且易受障碍物遮挡,导致链路不稳健,极大地限制了其覆盖范围与应用场景。为了解决这一问题,可重构智能表面作为一种革命性的“智能无线电环境”使能技术应运而生。它由大量亚波长尺寸、可编程的无源反射单元构成,能够通过实时调整每个单元的反射系数(特别是相位偏移),动态地塑造无线信道的传播特性,从而为毫米波信号构建一条可控的非视距路径,显著提升系统性能。本研究采用了一套系统性的技术路线。首先,我们基于毫米波信道的稀疏特性,建立了包含基站-RIS信道与RIS-用户信道的级联信道模型。该模型充分考虑了RIS的物理特性,其核心优化问题被建模为一个在基站发射功率约束与RIS单元恒定模约束下的联合波束成形设计问题。这是一个难以直接求解的非凸优化问题。对此,本研究采用半定松弛技术进行处理:通过引入辅助矩阵秩一松弛,将原非凸问题转化为一个凸的半定规划问题,进而可利用CVX等优化工具包进行高效求解,最终通过特征值分解恢复出高质量的基站预编码矩阵与RIS相位偏移矩阵。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值