gpt4 book ai didi

php - 为什么无法在 PHP 中返回 self ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:42 24 4
gpt4 key购买 nike

在 PHP 中不可能 return self链接静态方法。这限制了静态方法的使用,因为链接非常有用,您必须使用实例来链接方法。

PHP 开发人员决定不允许返回 self 有什么原因吗?或者一般来说在 OOP 中是不可能返回 self 的?

最佳答案

尝试return new static()return new self():

class Calculator
{
private static $_var = 0;

public static function startFrom($var)
{
self::$_var = $var;
return new static();
}

public static function add($var)
{
self::$_var += $var;
return new static();
}

public static function sub($var)
{
self::$_var -= $var;
return new static();
}

public static function get()
{
return self::$_var;
}
}

这可以用于链式静态方法:

echo Calculator::startFrom(10)
->add(5)
->sub(10)
->get(); // return 5

New self vs. new static

关于php - 为什么无法在 PHP 中返回 self ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com