深入php self与$this的详解
深入PHP中的self与$this:与父类及实例的互动艺术
在PHP的世界中,self和$this是两个强大的关键字,它们扮演着举足轻重的角色。让我们通过一段示例代码,深入这两者之间的差异和用途。
让我们来谈谈parent和self。在类的继承中,这两个关键字发挥着重要的作用。请看下面的代码:
// 由YinYiNiao创建
class A {
function __construct() {
echo "基类A的构造方法
";
}
}
class B extends A {
function __construct() {
parent::__construct(); // 调用父类的构造方法
echo "子类B的构造方法
";
self::myFun(); // 使用self调用类的静态方法或属性
}
function myfun() { // 注意这里的方法名应该是myFun而非myfun,以保持一致性
echo "一个普通方法myFun()
";
}
}
$obj = new A(); // 创建A类实例,调用其构造方法
$obj = new B(); // 创建B类实例,同样会调用父类A的构造方法,然后调用自身的构造方法和myFun方法
?>
在这段代码中,我们创建了两个类:基类A和子类B。在子类B的构造函数中,我们通过parent::__construct()调用了父类A的构造函数。然后,我们使用self::myFun()调用了类的静态方法或属性。这是self的关键作用之一:它可以用来引用类的静态成员和常量。而与之相对的$this关键字则不能引用静态成员和常量。这是因为$this更像是一个实例本身,代表着当前对象的属性和方法。而self更像类本身,可以用来访问类的静态成员和常量。在实例化一个对象时,我们可以使用$this来访问和修改对象的属性或调用其方法。self和$this在PHP中扮演着不同的角色,理解它们的不同之处对于编写高质量的PHP代码至关重要。这段代码也展示了如何在PHP中创建和使用类和对象,包括继承、构造函数和静态方法等基本概念。希望通过这个示例,你能对PHP中的self和$this有更深入的理解。
编程语言
- 深入php self与$this的详解
- php include类文件超时问题处理
- php对象在内存中的存在形式分析
- THINKPHP2.0到3.0有哪些改进之处
- vue.js 中使用(...)运算符报错的解决方法
- asp下返回以千分位显示数字格式化的数值
- jquery if条件语句的写法
- JS面试题---关于算法台阶的问题
- 网页使用Google Font API(字体)的方法
- vxe-table vue table 表格组件功能
- asp.net获得数据控件事件索引并获取其中值总结
- sqlserver Union和SQL Union All使用方法
- 旺旺在线客服代码 旺旺客服代码生成器
- JSP页面中文传递参数使用escape编码
- SqlServer下通过XML拆分字符串的方法
- animate.css在vue项目中的使用教程