杭州PHP培训
达内杭州PHP培训中心

0571-56020837

热门课程

php面向对象编程的self、static

  • 时间:2016-05-19
  • 发布:杭州PHP培训
  • 来源:PHPERZ


  杭州达内PHP培训专家讲解PHP中static关键字以及与self关键字的区别。

在php的面向对象编程中,总会遇到


class test{
 public static function test(){
  self::func();

  static::func();
 }

 public static function func(){}
}


  可你知道self和static的区别么?

  区别很简单,看代码:


Demo for self:

class Car
{
 public static function model(){
  self::getModel();
 }

 protected static function getModel(){
  echo "This is a car model";
 }
}

Car::model();


Class Taxi extends Car
{
 protected static function getModel(){
  echo "This is a Taxi model";
 }
}

Taxi::model();


  得到输出


This is a car model
This is a car model


  可以发现,self在子类中还是会调用父类的方法


Demo for static

class Car
{
 public static function model(){
  static::getModel();
 }

 protected static function getModel(){
  echo "This is a car model";
 }
}

Car::model();

Class Taxi extends Car
{
 protected static function getModel(){
  echo "This is a Taxi model";
 }
}

Taxi::model();


  得到输出


This is a car model
This is a Taxi model


  可以看到,在调用static,子类哪怕调用的是父类的方法,但是父类方法中调用的方法还会是子类的方法

总结:

  杭州达内PHP培训专家指出,self只能引用当前类中的方法,而static关键字允许函数能够在运行时动态绑定类中的方法。



上一篇:PHP二维数组排序要怎样实现
下一篇:php加密解密类的定义及技巧

795万高校毕业生创历史新高,2017届毕业生就业近况几何?

内副总裁齐一楠接受新浪专访,解读2016达内耀升级

达内教育总裁韩少云受邀出席GIE国际教育峰会做主题演讲

响应全球编程一小时 达内微软推出“发现杯”中国青少年编程挑战活动

选择城市和中心
贵州省

广西省

海南省