2、执行结果
class TestStatic
{
public static $param = ‘param’;
public $param1 = ‘param1’;
public static function func1()
{
echo $this->param1,PHP_EOL;
}
public static function func2()
{
echo self::$param,PHP_EOL;
}
public function func3()
{
echo $this->param,PHP_EOL;
$this->func2();
}
}$ts1 = new TestStatic();
//$ts1->func1();
echo “====打印一====”,PHP_EOL;
$ts1->func2();
$ts1->func3();
$ts1->param = ‘ts1’;
echo “====打印二====”,PHP_EOL;
$ts1->func2();
$ts1->func3();
TestStatic::$param = “hello world”;
echo “====打印三====”,PHP_EOL;
$ts1->func2();
$ts1->func3();
$ts2 = new TestStatic();
echo “====打印四====”,PHP_EOL;
$ts2->func2();
$ts2->func3();
echo “====打印五====”,PHP_EOL;
TestStatic::func2();
对$ts1->func1();进行注释掉,再执行
static修改属性和方法的称为类静态,这里的静态是指类所有,被所有实例化对象共享
静态方法中不能使用$this,这是静态方法为类所有,因此在此方法内部使用$this,则无法区分是哪个实例化对象
修改静态属性,只能通过类名,如使用$this,则会被当做是该类的公开属性
静态方法可以通过一个类已实例化的对象来访问
self代替当前运行上下文



