【发布时间】:2014-03-09 02:19:13
【问题描述】:
我有一个关于从函数返回值的非常基本的问题: 我知道例如在下面的函数中,将返回一个字符串:
function sample_1() {
return 'STRING';
}
或者在这个中,变量是什么:
function sample_2($var) {
return $var;
}
但是如果没有提到返回值怎么办。也就是说,这个返回的值是什么:
class Sample_3{
function __set($var, $value) {
if ('STRING' == $var) {
$this->$var = $value;
return;
}
}
}
【问题讨论】:
-
为了使 sample_3 工作,它应该被封装在一个类中。在任何情况下,返回值都是NULL。
-
它会返回
null,但你想返回什么? -
是的! Sample_3 是一个类。那么如果它返回NULL,那有什么意义呢?如果我删除退货部分,它会改变吗?
-
对于 setter 函数,您不需要返回。只有在你想跳出来的时候才使用它,比如
if ($value == 'bad_value') return;,这样它就什么都不做。当然,你总是可以颠倒逻辑和状态if ($value != 'bad_value') $this->$var = $value;。这完全取决于你。 -
Sample_3 中的 return 语句没有任何意义 - 除非 if 检查之后有另一个语句。返回将触发函数在该位置的离开 - 之后的所有代码都被忽略 - 这称为“提前退出”。