self与static的区别
来源:互联网 发布:对日外包软件企业 编辑:程序博客网 时间:2024/05/09 03:26
static 关键字,这里作为作用域引用。类似于parent, self等关键字。与parent和self不同的是,parent 引用的是父类作用域,self引用的是当前类的作用域,而static引用的是全部静态作用域,子类会覆盖父类,
<?php
/*self就是写在哪个类里面, 实际调用的就是这个类.static代表使用的这个类, 就是你在父类里写的static,然后被子类覆盖,使用的就是子类的方法或属性*/
class Person
{
public static function name()
{
echo "xiaosan";
echo "<br />";
}
public static function callself()
{
self::name();
}
public static function callstatic()
{
static::name();
}
}
class Man extends Person
{
public static function name()
{
echo "gaojin";
echo "<br />";
}
}
Person::callself(); // output: xiaosan
Person::callstatic(); // output: xiaosan
Man::callself(); // output: xiaosan
Man::callstatic(); // output: gaojin
?>
<?php
/*self - 就是这个类,是代码段里面的这个类。
static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类。*/
class A {
public static function get_self() {
return new self();
}
public static function get_static() {
return new static();
}
}
class B extends A {}
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_self());//A
echo get_class(A::get_static()); // A
阅读全文
0 0
- self与static的区别
- php关键字self与static的区别
- new self 与 new static 的区别
- new self() 与new static()的区别
- php中self与static的区别
- PHP self与static区别
- self和static的区别
- static 和 self的区别
- PHP中new static()与new self()的区别
- PHP中new static()与new self()的区别
- PHP中static关键字以及与self关键字的区别
- static跟self的使用区别
- PHP中 static 和 self 的区别
- PHP 中 static 和 self 的区别
- PHP中SELF和STATIC的区别
- PHP 中 this self static 的区别
- PHP中new static()与new self()的区别异同分析
- PHP中new static()与new self()的区别异同分析
- Projeny-常见问题FAQ(五)
- 微信公众平台java开发详解(工程代码+解析)
- 福大OJ2273 如何判断点是否在三角形内
- python怎么把一个列表内容为数字型变为字符串型
- thinkphp 接收前端java传参 获取不到数据
- self与static的区别
- CentOS 5下yum运行失败
- 安卓系统的制作
- 解决python:Unable to find vcvarsall.bat
- Projeny-内置命令行参考文档(四)
- 萌新linux之旅4
- ROS开发笔记1——运动检测程序
- selenium 使用对象库
- intellij idea 大小写不敏感