【问题标题】:what is the function of self keyword in php [duplicate]php中self关键字的作用是什么[重复]
【发布时间】:2011-10-15 02:05:49
【问题描述】:

可能重复:
PHP: self vs. $this

它来自 php 手册,请告诉我我在哪里以及为什么使用 self 关键字

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}


print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // Undefined "Property" my_static 

print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // As of PHP 5.3.0

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?> 

【问题讨论】:

  • my_static 是一个静态变量。您可以通过&lt;CLASSNAME&gt;::$my_static (FOO::$my_static) 从课堂外访问它,也可以在您使用self 的课堂内访问它。 self$this 基本相同,但$this 仅在您启动课程时有效(new FOO()

标签: php


【解决方案1】:

self 用于访问类方法和变量(静态的),而 $this 用于访问对象实例变量和方法。

【讨论】:

    【解决方案2】:

    self 允许您引用您当前所在的班级;就像 $this,但不是关于实例,而是允许您在不命名类的情况下调用静态方法(父类以类似的方式工作,但指向父类,而不是自身类 - 我认为不言自明)。

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2015-08-12
      • 2017-10-11
      • 2019-06-07
      相关资源
      最近更新 更多