首页 > 后端开发 > php教程 > PHP `self` 与 `$this`:何时分别使用?

PHP `self` 与 `$this`:何时分别使用?

Barbara Streisand
发布: 2024-12-24 01:17:10
原创
179 人浏览过

PHP `self` vs. `$this`: When to Use Each?

何时在 PHP 中使用 'Self' 和 '$This'

在 PHP 中,了解 'self' 和 '$This' 之间的区别这一点至关重要。 'Self' 指的是当前类,而 '$this' 指的是当前对象。

何时使用 'Self':

  • 访问静态成员(变量或方法):

    class MyClass {
        static $static_member = 10;
    }
    echo MyClass::$static_member; // Output: 10
    登录后复制
  • 调用父类方法:

    class ChildClass extends ParentClass {
        public function myMethod() {
            self::parentMethod(); // Calls the parent class method
        }
    }
    登录后复制

何时使用 '$This':

  • 正在访问非静态成员:

    class MyClass {
        private $instance_member = 20;
    }
    $obj = new MyClass();
    echo $obj->instance_member; // Output: 20
    登录后复制
  • 调用实例方法:

    class MyClass {
        public function myMethod() {
            echo $this->instance_member; // Accesses the instance member
        }
    }
    登录后复制
  • 多态:从派生类调用实例方法:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            echo 'DerivedClass::myMethod()';
        }
    }
    $baseObj = new BaseClass();
    $derivedObj = new DerivedClass();
    $baseObj->myMethod(); // Output: 'BaseClass::myMethod()'
    $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
    登录后复制
  • 抑制多态性:在派生类中使用“self”调用父类方法:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            parent::myMethod(); // Calls the BaseClass's myMethod() using self::
        }
    }
    $derivedObj = new DerivedClass();
    $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
    登录后复制

以上是PHP `self` 与 `$this`:何时分别使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板