忽略PHP中函数的返回值有问题

Ric*_*ral 7 php function return-value

例如:

// somefile.php
function doSomething() {
    // do lots of code, whatever...
    return $something;
}

// mainfile.php
include "somefile.php"
doSomething(); // ignored the return value, we don't need it here
Run Code Online (Sandbox Code Playgroud)

当PHP中的函数返回值但我们不关心它时会发生什么?这种行为有问题,还是我们总是得到变量,即使我们从未在函数范围之外使用它?PHP如何通过返回一个不在函数范围之外使用的值来管理它的资源?

Gum*_*mbo 13

返回值被丢弃.这样做没有错.即使没有显式的函数也会隐式return返回null:

function foo() {}
var_dump(foo());  // NULL
Run Code Online (Sandbox Code Playgroud)

  • +1"没有显式返回的偶数函数会隐式返回null:" (2认同)

edo*_*ian 7

对我来说,这一切都归结为一个简单的范例:

"一个功能应该做一件事.它应该做得很好.它应该只做它."

如果您有多个理由要求该功能可以做多.


语言的角度来看,忽视返回值绝对没有问题.从干净的代码角度来看.

一个insert()函数应该在数据库中插入一条记录.不返回插入记录的id.你没有要求这个.

A setLatitude()应修改对象内部状态,不加载Timezone类,并计算纬度所在的时区,并将其写入数据库.(保存对象可以做到这一点).


如果你有两个理由来调用一个函数它有多个目的,那么从一个干净的代码的角度来看它就是:"太多了"

当然可以构建一些可以理解的案例但是作为一般的经验法则,忽略返回值可能是代码气味.