php中self关键字的用法是:1、替代类名,引用当前类的静态成员变量和静态函数;2、抑制多态行为,引用当前类的函数而非子类中覆盖的实现。self总是指向当前类(及类实例)。

用法:
self总是指向“当前类(及类实例)”。
详细介绍:
1、替代类名,引用当前类的静态成员变量和静态函数;
2、抑制多态行为,引用当前类的函数而非子类中覆盖的实现;
立即学习“PHP免费学习笔记(深入)”;
下面我们通过实例来与 parent 、 static 以及 this进行对比。
parent
self 与 parent 的区分比较容易: parent 引用父类/基类被隐盖的方法(或变量), self则引用自身方法(或变量)。例如构造函数中调用父类构造函数:
易优cms企业建站系统v1.0是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。 可以用来快速建设一个企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。 系统主要特点: 1、后台简单明了,前端可视化编辑 2、可以给每个页面设置SEO关键字,有利于搜索引擎收录。可以给每个页面设置别名,从而是让网页的访问网址更加简洁。 3、针对企业网站开发,基本支持企
219
class Base {
public function __construct() {
echo "Base contructor!", PHP_EOL;
}
}
class Child {
public function __construct() {
parent::__construct();
echo "Child contructor!", PHP_EOL;
}
}
new Child;
// 输出:
// Base contructor!
// Child contructor!static
static 常规用途是修饰函数或变量使其成为类函数和类变量,也可以修饰函数内变量延长其生命周期至整个应用程序的生命周期。但是其与 self 关联上是PHP 5.3以来引入的新用途:静态延迟绑定。
有了 static 的静态延迟绑定功能,可以在运行时动态确定归属的类。例如:
class Base {
public function __construct() {
echo "Base constructor!", PHP_EOL;
}
public static function getSelf() {
return new self();
}
public static function getInstance() {
return new static();
}
public function selfFoo() {
return self::foo();
}
public function staticFoo() {
return static::foo();
}
public function thisFoo() {
return $this->foo();
}
public function foo() {
echo "Base Foo!", PHP_EOL;
}
}
class Child extends Base {
public function __construct() {
echo "Child constructor!", PHP_EOL;
}
public function foo() {
echo "Child Foo!", PHP_EOL;
}
}
$base = Child::getSelf();
$child = Child::getInstance();
$child->selfFoo();
$child->staticFoo();
$child->thisFoo();程序输出结果如下:

在函数引用上, self 与 static 的区别是:对于静态成员函数, self 指向代码当前类, static 指向调用类;对于非静态成员函数, self 抑制多态,指向当前类的成员函数, static 等同于 this ,动态指向调用类的函数。
更多相关知识,可以访问php中文网。
以上就是php中self关键字的用法是什么的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号