【发布时间】:2012-11-19 00:24:21
【问题描述】:
我正处于迁移到 100% OO php 的阶段,我最终遇到了很多这样的问题。所以,如果你觉得它很愚蠢,请原谅,我只是想在一开始就让我的 OO 编程实践很好,这样我以后就不必修复它们了。
这样做可以吗?
private function _some_funct($args) {
// Some code here....
if ($something) return;
//Rest of code
}
基本上,这里有 2 个问题。
return 后面没有值可以使用吗?我经常使用它并且没有遇到任何缺点,但从未在其他人的代码中看到它。我只看到return false。
以这种方式停止函数通常可以吗,还是我应该重新考虑我的程序结构?
使用它的示例是我正在制作的 CMS。
public function _init_engines() {
$this->_session_engine = $this->_dep['SessionEngine'];
$this->_login_engine = $this->_dep['LoginEngine'];
if ($this->_dep['User'] == false) return;
$this->_security_engine = $this->_dep['SecurityEngine'];
//Other engines go here.......
}
所以我让系统启动会话并设置会话变量,然后检查用户是否已登录。如果用户未登录,LoginEngine 会处理并加载“登录”模块。加载登录模块后,我不希望实例化其他引擎,因为不需要它们。我本可以使用 die 或 exit 但这会阻止整个脚本执行。像这样,我的脚本完成执行,其他不是引擎的东西,比如基准测试和其他一些东西仍然被执行,这正是我想要的。再说一次,我应该在这里重新考虑我的逻辑还是您认为这样可以?
【问题讨论】:
-
使用空返回来退出函数是完全可以的,但我通常只在所述函数是
void函数时这样做(即:否则不会返回任何东西),并且可以不要像雷所说的那样进行重组。