php中static、self、$this的区别有哪些?-PHP问题

资源魔 38 0

php中static、self、$this的区分有:一、【$this】示意工具的援用,写正在类中的非动态办法中;二、self以及this没有同,它指向类自身,没有指向任何实例化工具;三、static普通用来拜访类中的动态变量以及动态办法。

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

一、$this 示意工具的援用 $this写正在类中的非动态办法中, 实例化该类,谁挪用该办法(普通是工具挪用)$this则示意该工具的援用。

<?php
class Person {
    public $name;
    public function getName() {
        echo $this->name;
    }
}
$p = new Person();
$p2 = new Person();
$p->name = "小红";
$p2->name = "小明";
$p->getName();  // 小红
$p2->getName();  // 小明

二、self 以及 this 没有同,它指向类自身,没有指向任何实例化工具,普通用来拜访类中的动态变量以及动态办法,也是写正在类中的办法。self写正在哪一个类中则示意该类的援用

<?php
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();  // 小明

三、static 普通用来拜访类中的动态变量以及动态办法,也是写正在类中的办法,也是阿谁类挪用该办法static就示意阿谁类(绑定阿谁类)

<?php
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

相干学习保举:PHP编程从入门到通晓

以上就是php中static、self、$this的区分有哪些?的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 Static self php故障解决 php使用问题

抱歉,评论功能暂时关闭!