<?php
/**
1. 声明类属性或方法为静态,就可以不实例化类而直接访问
echo Foo::$a //返回 11
echo Foo::getStaticValue(); //返回 11
2. 静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)
$foo = new Foo();
$foo::$a;//返回 11
$foo::getStaticValue();//返回 11
3. 为了兼容 PHP 4,如果没有指定访问控制,属性和方法默认为公有。
4. 用静态方式调用一个非静态方法会导致一个 E_STRICT 级别的错误。
5. 静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。
6. 静态属性不可以由对象通过 -> 操作符来访问。
echo $foo->a;//报错
*/
class Foo{
static $a ='11';
public static function getStaticValue(){
return self::$a;
}
}
echo Foo::$a; //返回 11
echo "<hr>";
echo Foo::getStaticValue(); //返回 11
echo "<hr>";
$foo = new Foo();
echo $foo::$a;//返回 11
echo "<hr>";
echo $foo->a;//报错
echo "<hr>";
echo $foo::getStaticValue();//返回 11
/**
函数中static
*/
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count(); //每执行一次加1
?>
php static 关键字
最新推荐文章于 2021-03-25 01:01:18 发布
529

被折叠的 条评论
为什么被折叠?



