代码之家  ›  专栏  ›  技术社区  ›  nickf

何时修改和何时重复参数?

  •  2
  • nickf  · 技术社区  · 15 年前

    考虑一下函数 sort array_reverse .

    $a = array(3, 1, 2);
    
    sort($a);
    // $a === array(1, 2, 3)
    
    array_reverse($a);
    // $a === array(1, 2, 3)
    

    分类 可以很容易地被编写为返回参数的修改副本,反之亦然

    我之所以问这个问题是因为我想知道是否有任何准则可以用来决定是否使用 参照修改 “方法vs the” 按值传递、修改并返回

    3 回复  |  直到 15 年前
        1
  •  1
  •   cletus    15 年前

    PHP的一个烦恼是API是 真正地

    • 参数排序不一致(针、草堆);
    • 下划线使用不一致。有些函数甚至在一个部分使用下划线,而在另一个部分则不使用下划线。

        2
  •  1
  •   danben    15 年前

    我认为用户意图可能是这里最重要的。在您选择的特定示例中,这不是很明显,但一般来说,我想考虑一下用户在设计API时期望的(破坏性就地修改与新构造的返回值)。

        3
  •  0
  •   K Prime    15 年前

    我建议你坚持下去 传递值,返回副本 通过引用传递,参数已修改 只有在发生两个不同的操作时才有意义,例如。 shift ,其中数组被修改但第一个元素 return 预计起飞时间