php static::KEY 和 self::KEY 区别是什么?

帖子列表 发布于 2016/05/09 19:43
阅读 378
收藏 1
PHP

<无详细内容>

加载中
2
殷升吉
殷升吉
static是延迟绑定,啥意思,就是说绑定在最后一次用的类上;而self在哪里面写就是指向哪个类的
1
曾建凯
曾建凯

static关键字主要用于访问继承类的protected和public的静态属性使用。

以下这个例子可以说明他们的区别:

class StaticClassTest
{

	public static $name = 'hello';

	public static function getNameSelf()
	{
		return self::$name;
	}

	public static function getNameStatic()
	{
		return static::$name;
	}
}

class StaticClassTest2 extends StaticClassTest
{

	public static $name = 'test';
}

var_dump(StaticClassTest::getNameSelf()); // 输出hello
var_dump(StaticClassTest::getNameStatic()); // 输出hello
var_dump(StaticClassTest2::getNameSelf()); // 输出hello
var_dump(StaticClassTest2::getNameStatic()); // 输出test



0
ruionline
ruionline
可变与不可变
-1
来自虚物的平行
this 是指向对象实例的一个指针,self 是对类本身的一个引用,parent 是对父类的引用。
返回顶部
顶部