相关疑难解决方法(0)

新的自我与新的静态

我正在转换PHP 5.3库以在PHP 5.2上工作.支持我的主要方法是使用后期静态绑定return new static($options);,如果我将其转换为return new self($options)将得到相同的结果?

new self和之间有什么区别new static

php static late-static-binding

483
推荐指数
3
解决办法
19万
查看次数

在PHP中链接静态方法?

是否可以使用静态类将静态方法链接在一起?说我想做这样的事情:

$value = TestClass::toValue(5)::add(3)::subtract(2)::add(8)::result();
Run Code Online (Sandbox Code Playgroud)

...显然我希望$ value被分配数字14.这可能吗?

更新:它不起作用(你不能返回"自我" - 它不是一个实例!),但这是我的想法带我的地方:

class TestClass {
    public static $currentValue;

    public static function toValue($value) {
        self::$currentValue = $value;
    }

    public static function add($value) {
        self::$currentValue = self::$currentValue + $value;
        return self;
    }

    public static function subtract($value) {
        self::$currentValue = self::$currentValue - $value;
        return self;
    }

    public static function result() {
        return self::$value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在完成这项工作之后,我认为简单地使用类实例而不是尝试链接静态函数调用(这看起来不可能,除非上面的示例可以某种方式进行调整)更有意义.

php oop method-chaining

49
推荐指数
7
解决办法
2万
查看次数

标签 统计

php ×2

late-static-binding ×1

method-chaining ×1

oop ×1

static ×1