php static的作用

本文介绍了PHP中使用static关键字定义静态变量的原因及其优势,并通过示例展示了如何在函数及类的方法中应用静态变量和静态方法。此外,还对比了不同访问静态属性的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.为什么要引入static        

函数内部定义的变量,在程序执行到某个变量,编译器在栈上面分配空间,在这个函数运行完毕后会释放栈上面的空间,如果将第一次函数运行的变量的值保存至下一次函数调用时,怎么办?如果定义一个全局变量会破坏其他地方引入此全局变量的值。

2.作用

可以节省内存

3.示例

静态变量示例

// +----------------------------------------------------------------------
// | Author: 全栈开发工程师 <3456649743@qq.com>
// +----------------------------------------------------------------------

//静态变量示例
<?php
function test()
{
    static $count = 0;

    $count++;
    echo $count;
    echo "<br/>";
   
}

test();
test();
?> 

输出如下

静态属性和方法示例

// +----------------------------------------------------------------------
// | Author: 全栈开发工程师 <3456649743@qq.com>
// +----------------------------------------------------------------------
<?php
class Ceshi
{
    public static $bianliang = 'bianliang';

    public function getbianliang1() {
        return self::$bianliang;
    }
    public static function getbianliang2() {
        return self::$bianliang;
    }
}

class Test extends Ceshi
{
    public function getbianliang3() {
        return parent::$bianliang;
    }
}


print Ceshi::$bianliang . "---1\n";
echo "<br/>";
print Ceshi::getbianliang2() . "---2\n";
echo "<br/>";

$Ceshi = new Ceshi();
print $Ceshi->getbianliang1() . "---3\n";
echo "<br/>";
print $Ceshi->bianliang . "---4\n";      // Undefined "Property" bianliang 
echo "<br/>";
print $Ceshi::$bianliang . "---5\n";
?>

 输出结果如下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值