gpt4 book ai didi

php - 在类 __construct() 中间返回是否可以接受

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

我知道有很多问题与此很接近。但是,我没有设法找到简单问题的答案(我不是在询问构造函数的返回值,我认为我理解构造函数应该返回什么)。

是否有任何理由避免在 __construct 中使用 return

或者这种完全可以接受的编码风格在未来不会因为return而中断:

class A {
protected $tristate = null;
function __construct() {
// Constructor returns instance of class automatically
// no need to `return $this`
}
protected function Logic() {
return rand(0, 1) === 1;
}
}

class B extends A {
function __construct() {
parent::__construct();
if ($this->Logic()) return;
$this->tristate = true;
}
}

上面的一个已经过测试并且按预期工作(在我的开发环境中),它将父 $tristate var 50/50 设置为 NULL/TRUE 但它会工作吗将来在构造函数中间使用 void return 返回时会不会出现任何问题。

我想到的另一件事是我应该使用 return $this 而不是普通的 return 这通常是无效的但 PHP 似乎无论如何都会返回实例,答案很可能是return $this 和普通 return 一样好。

最佳答案

这没有任何后果,我认为永远不会有。您可以随时从构造函数返回任何内容。返回值(如果有)将被忽略。

关于php - 在类 __construct() 中间返回是否可以接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867548/

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