PHP作用域限定符::的几个程序例子
程序员文章站
2022-05-16 08:37:15
...
双冒号::被认为是作用域限定操作符,用来指定类中不同的作用域级别。::左边表示的是作用域,右边表示的是访问的成员。
系统定义了两个作用域,self和parent。self表示当前类的作用域,在类之外的代码是不能使用这个操作符的。
Program List:使用self作用域访问父类中的函数
程序运行结果:
extendNowaMethod 这个方法在 ExtendNowaClass 这个类中声明了。 我在类 NowaClass 中声明了。
parent这个作用域很简单,就是派生类用来调用基类的成员时候使用。
Program List:使用parent作用域
extendNowaMethod(); ?>
程序运行结果:
我是派生类的函数。 我是基类的函数。
Program List:用基类的方法访问派生类的静态成员
如何继承一个存储位置上的静态属性。
connect(); } } class Banana extends Fruit { private static $bananaColor; public function connect() { return self::$bananaColor = 'yellow'; } } class Orange extends Fruit { private static $orange_color; public function connect() { return self::$orange_color = 'orange'; } } $banana = new Banana(); $orange = new Orange(); $banana->get(); $orange->get(); ?>
程序运行结果:
yellow orange。
Program List:静态函数初始化
在一个类中初始化静态变量比较复杂,你可以通过创建一个静态函数创建一个静态的构造器,然后在类声明后马上调用它来实现初始化。
程序运行结果:
White Kilogram!
Program List:一个简单的单例模式例子
这个应该可以帮到某些人吧。
color = 'Green'; } public static function getInstance() { if(self::$instance == null) { print "Fruit object created!
"; self::$instance = new self; } return self::$instance; } public function showColor() { print "My color is {$this-> color}!
"; } public function setColor($color) { $this-> color = $color; } } $apple = Fruit::getInstance(); // Fruit object created! $apple-> showColor(); // My color is Green! $apple-> setColor("Red"); $apple-> showColor(); // My color is Red! $banana = Fruit::getInstance(); $banana-> showColor(); // My color is Red! $banana-> setColor("Yellow"); $apple-> showColor(); // My color is Yellow! ?>
程序运行结果:
Fruit object created! My color is Green! My color is Red! My color is Red! My color is Yellow!