php self与static的区别

时间:2021-08-25 03:03:07

self vs static

用一个demo来直接说明self与static的区别。
self示例:

<?php
class Vehicle {
    protected static $name = 'This is a Vehicle';
    public static function what_vehicle() {
        echo get_called_class()."\n";                
        echo self::$name;
    }
}
class Sedan extends Vehicle {
    protected static $name = 'This is a Sedan';
}
Sedan::what_vehicle();

程序输出:

Sedan
This is a Vehicle

static示例:

<?php
class Vehicle {
    protected static $name = 'This is a Vehicle';
    public static function what_vehicle() {
        echo get_called_class()."\n";        
        echo static::$name;
    }
}
class Sedan extends Vehicle {
    protected static $name = 'This is a Sedan';
}
Sedan::what_vehicle();

程序输出:

Sedan
This is a Sedan