gpt4 book ai didi

php - 具有不同返回值的函数链接?

转载 作者:可可西里 更新时间:2023-11-01 00:24:27 25 4
gpt4 key购买 nike

是否可以根据上下文(如何使用返回值)让方法返回不同的值?例如,一个方法是否可以在与箭头运算符一起使用以调用另一个方法(即链接方法调用)时返回 $this,但在未以这种方式使用返回值时返回标量?

案例一:

$result = $test->doSomething1(); // returns 4
// $result returns 4

案例二:

$result = $test->doSomething1()->doSomething2();
// doSomething1() returns $this
// doSomething2() returns 8

有没有办法执行这样的行为?

最佳答案

如果我正确理解了这个问题,您需要一个方法 (doSomething1) 来根据调用链的其余部分返回一个值。不幸的是,您绝对无法做到这一点。

“所有”语言共享的通用编程范式(方法、运算符等如何在语法上下文中工作)规定表达式 $this->doSomething1() 的结果必须在可以考虑可能调用 ->doSomething2() 的结果之前计算出来。静态类型和动态类型语言以不同的方式实现这一点,但共同点是表达式 $this->doSomething1() 必须独立于后面或不后面的内容来考虑。

简而言之:$this->doSomething1() 在这两种情况下都必须返回特定类型的值。在 PHP 中,没有办法让一种值在一个上下文中表现得像一个数字,而在另一个上下文中表现得像一个具有调用方法的对象。

关于php - 具有不同返回值的函数链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913937/

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