PHP self与static区别
来源:互联网 发布:淘宝网店计划 编辑:程序博客网 时间:2024/05/20 09:25
在PHP中,调用一个静态变量,我们既可以使用self也可以使用static,结果也许都是我们期望的,但是,有时候并不是我们所想的那样,static和self的区别还是很大的,下面我们进行代码来进一步说明它们之间的区别。
首先创建一个class:
<?php class Boo { protected static $str = "This is class Boo"; public static function get_info(){ echo get_called_class()."<br>"; echo self::$str; } } class Foo extends Boo{ protected static $str = "This is class Foo"; } Foo::get_info();?>这段代码应该跟我们期望的结果是一样的 输出调用的类是Foo,$str字符串内容This is class Boo:
下面我们稍作修改代码:
<?php class Boo { protected static $str = "This is class Boo"; /* public static function get_info(){ echo get_called_class()."<br>"; echo self::$str; } */ public static function get_info(){ echo get_called_class()."<br>"; echo static::$str; } } class Foo extends Boo{ protected static $str = "This is class Foo"; } Foo::get_info();?>我们再运行结果:
我们惊奇的发现结果不是我们预期的那样,为什么呢?
PHP官方也说过,大概意思是说self调用的就是本身代码片段这个类,而static调用的是从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类,例子比较容易明白些。
其实static就是调用的当前调用的类,比较抽象吧。
0 0
- PHP self与static区别
- php关键字self与static的区别
- php中self与static的区别
- static self 区别(php)
- PHP中new static()与new self()的区别
- PHP中new static()与new self()的区别
- PHP中static关键字以及与self关键字的区别
- self与static的区别
- PHP中 static 和 self 的区别
- PHP 中 static 和 self 的区别
- PHP中SELF和STATIC的区别
- PHP 中 this self static 的区别
- PHP中new static()与new self()
- new self 与 new static 的区别
- new self() 与new static()的区别
- PHP中new static()与new self()的区别异同分析
- PHP中new static()与new self()的区别异同分析
- PHP中new static()与new self()的区别异同分析
- 配置asp.net 2.0的项目到IIS7
- Python核心数据类型——布尔型
- 中断门初始化(init_IRQ)
- Linux下*.tar.gz文件解压缩命令
- quickcocos2dx 3.3 拉伸适配
- PHP self与static区别
- 存储过程例子(1)
- Fragment 点击穿透 解决办法
- opencv3.0.0 for android .判断两张图片是否一致
- HTML5初学者路线图
- liftweb整合ckfinder进行文件上传与管理
- 在线预览 模仿百度文库
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- AsyncTask的简单理解(源码级)