php static self 区别,php中static、self、$this的区别

本文详细介绍了PHP中static、self和$this的区别。$this指代对象实例,self用于访问类的静态成员。static则在静态方法中用于调用其他静态成员。示例代码展示了它们在类方法中的应用和行为。
摘要由CSDN通过智能技术生成

php中static、self、$this的区别有:

1、

math?formula=this%20%E8%A1%A8%E7%A4%BA%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%BC%95%E7%94%A8this写在类中的非静态方法中, 实例化该类,谁调用该方法(一般是对象调用)$this则表示该对象的引用。

class Person {

public $name;

public function getName() {

echo $this->name;

}

}

$p = new Person();

$p2 = new Person();

$p->name = "小红";

$p2->name = "小明";

$p->getName(); // 小红

$p2->getName(); // 小明

2、self 和 this 不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法,也是写在类中的方法。self写在哪个类中则表示该类的引用

class Person {

public static $name = "小红";

public static function getName() {

echo self::$name;

}

}

$p = new Person();

$p2 = new Person();

$p::getName(); // 小红

$p2::getName(); // 小红

$p::$name = "小明";

$p::getName(); // 小明

$p2::getName(); // 小明

3、static 一般用来访问类中的静态变量和静态方法,也是写在类中的方法,也是那个类调用该方法static就表示那个类(绑定那个类)

class A {

public function say() {

echo "Hello";

}

public function saySelf() {

//static 和 self 可以调用非静态方法 不能调用非静态属性 静态方法中不能有$this

// static 和 self 可以写在非静态的方法中 ,可以使用对象调用

self::say();

}

public function sayStatic() {

static::say();

}

}

class B extends A {

public function say() {

echo "World";

}

}

$b = new B();

$b->say(); // World

$b->saySelf(); // Hello

$b->sayStatic(); // World

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值