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";
?>
输出结果如下