相关疑难解决方法(0)

127
推荐指数
7
解决办法
4万
查看次数

静态::和$ this之间的区别::

我知道有之间的差异static::,并self::在这个例子类似(从/sf/answers/952960291/)

<?php
class One
{
    const TEST = "test1";
    function test() { echo static::TEST; }
}
class Two extends One
{
    const TEST = "test2";
}

$c = new Two();
$c->test();
Run Code Online (Sandbox Code Playgroud)

返回测试2static::TEST被使用和测试1self::TEST使用.但它在使用时也会返回test2$this::TEST.

static::TEST可以在静态方法中使用,而$this::TEST在使用之前需要一个实例(因此在静态方法中不可用).

但是如果一个人不能$this::在静态方法中使用,static::可以在非静态方法中使用(如示例中所示).

那么,static ::和$ this ::在非静态方法中有什么区别?


可选的完整测试

<?php
abstract class AOne
{
    const TEST = "test1";
    abstract public function test();
}
class OneStatic …
Run Code Online (Sandbox Code Playgroud)

php static this self

9
推荐指数
2
解决办法
4099
查看次数

标签 统计

php ×2

late-binding ×1

late-static-binding ×1

self ×1

static ×1

this ×1