类中 静态方法和静态属性的引用方法
1 class Test{ 2 public static $test = 1; 3 public static function test(){ 4 } 5 }
可以不用实例化对象直接使用 Test::$test 来取得$test属性的值
静态方法调用也同理Test::test(); 直接调用静态方法test
1用变量在类定义外部访问
<?php class Fruit { const CONST_VALUE = 'Fruit Color'; } $classname = 'Fruit'; echo $classname::CONST_VALUE; // As of PHP 5.3.0 echo Fruit::CONST_VALUE; ?>
2.在类定义外部使用::
<?php class Fruit { const CONST_VALUE = 'Fruit Color'; } class Apple extends Fruit { public static $color = 'Red'; public static function doubleColon() { echo parent::CONST_VALUE . " "; echo self::$color . " "; } } Apple::doubleColon(); ?>
//Fruit Color Red
3.调用parent方法
<?php class Fruit { protected function showColor() { echo "Fruit::showColor() "; } }
class Apple extends Fruit { // Override parent's definition public function showColor() { // But still call the parent function parent::showColor(); echo "Apple::showColor() "; } } $apple = new Apple(); $apple->showColor(); ?>
//Fruit::showColor()
//Apple::showColor()
4.使用作用域限定符
<?php class Apple { public function showColor() { return $this->color; } } class Banana { public $color; public function __construct() { $this->color = "Banana is yellow"; } public function GetColor() { return Apple::showColor(); } } $banana = new Banana; echo $banana->GetColor(); ?>
//Banana is yellow
5.调用基类的方法
<?php class Fruit { static function color() { return "color"; } static function showColor() { echo "show " . self::color(); } } class Apple extends Fruit { static function color() { return "red"; } } Apple::showColor(); // output is "show color"! //show color