通过引用或重新分配?哪个更好/更有效/等?

时间:2014-01-09 22:19:42

标签: php jquery mysql

最近我一直在使用PHP传递引用“&”运算符,然后通过丰富,删除或添加项来修改数组,但不知道这是否是在PHP中使用数组执行操作的最佳方法,而不是重新分配它们:这是一个示例:

 function save_contract($contract_id){

  $this->layout = 'json';
  if(isset($contract_id)){
    $contract_data = array(
     'id'     => (int)$contract_id,
     'errors' => array(),
    );

    $this->_validate_post_data(&$contract_data);


}
-OR - 这样做更好:

 function save_contract($contract_id){

  $this->layout = 'json';
  if(isset($contract_id)){
    $contract_data = array(
     'id'     => (int)$contract_id,
     'errors' => array(),
    );

    $contract_data = $this->_validate_post_data($contract_data);

}

1 个答案:

答案 0 :(得分:1)

如果您没有更改阵列,那么这两个操作是相同的。如果要更改,则传递by-reference更有效,因为它不必复制数组。

也就是说,引用传递应该由函数签名处理,即:

private function _validate_post_data(&$data) {
    // do stuff
}

如果不这样做,将导致严格的标准错误。