当前位置: 首页 > article >正文

PHP $this和self、parent这三个关键词分别代表什么

在PHP中,$thisselfparent 是三个用于面向对象编程(OOP)的关键字,它们各自有特定的用途和含义:

$this

  • $this 是一个指向当前对象实例的指针。
  • 它用于访问当前对象的属性和方法。
  • 在类的实例方法中,$this 总是指向调用该方法的对象实例。
class MyClass {  
    public $property = 'value';  

    public function showProperty() {  
        echo $this->property; // 访问当前对象的属性  
    }  
}  

$obj = new MyClass();  
$obj->showProperty(); // 输出: value

self

  • self 是一个对类本身的引用,用于访问类的静态属性和静态方法,以及在类定义内部引用类名。
  • 它不依赖于类的实例,因此可以在没有创建对象的情况下使用。
  • self 通常用于定义静态方法或属性,或者在类的静态上下文中调用其他静态方法或属性。
class MyClass {  
    public static $staticProperty = 'static value';  

    public static function showStaticProperty() {  
        echo self::$staticProperty; // 访问类的静态属性  
    }  
}  

MyClass::showStaticProperty(); // 输出: static value

parent

  • parent 用于在子类中引用父类的属性和方法。
  • 它通常用于覆盖(重写)父类方法时,调用父类的原始方法。
  • parent 还可以用于访问父类的构造函数。
class ParentClass {  
    public function showMessage() {  
        echo "Parent class message";  
    }  
}  

class ChildClass extends ParentClass {  
    public function showMessage() {  
        parent::showMessage(); // 调用父类的方法  
        echo " - Child class message";  
    }  
}  

$child = new ChildClass();  
$child->showMessage(); // 输出: Parent class message - Child class message

总结:

  • $this 用于访问当前对象的属性和方法。
  • self 用于访问类的静态属性和静态方法,以及在类定义内部引用类名。
  • parent 用于在子类中引用父类的属性和方法。

http://www.kler.cn/news/365420.html

相关文章:

  • 华为HCIE-OpenEuler认证详解
  • Web3的核心概念:去中心化如何改变互联网
  • Linux可分配内存和空闲内存
  • Pytorch常用函数汇总【持续更新】
  • 集群分发脚本
  • NavMesh只制作可移动的导航网,清除多余不可走区域
  • Spring的类加载机制
  • SSM学习day01 JS基础语法
  • 论文笔记:TimesFM 用于时间序列预测的仅解码器基础模型
  • vscode使用正则表达式一键删除文件中所有注释
  • 短剧AI突围战,百度跑偏了
  • logback 如何将日志输出到文件
  • 面试题框架篇
  • JavaWeb——Maven(6/8):依赖管理-依赖传递 (介绍、直接依赖与间接依赖、演示、排除依赖)
  • 题解 力扣 LeetCode 739 每日温度 C++
  • 海外云手机怎样助力亚马逊店铺运营?
  • 合约门合同全生命周期管理系统:从合同创建到归档的全流程管理解决方案
  • Spring MVC 原理与源码
  • 六个方向比较分析:ChatGPT-o1-preview与 ChatGPT-4o在论文写作辅助上的差异
  • 富格林:察觉欺诈有效追损措施
  • 解决运行jar错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  • webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
  • 当遇到 502 错误(Bad Gateway)怎么办
  • 【Python】实战:猜数游戏
  • 如何在 Ubuntu 18.04 上使用 Let‘s Encrypt 保护 Apache
  • 挖矿病毒的处理