最近我一直在使用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);
}
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);
}
答案 0 :(得分:1)
如果您没有更改阵列,那么这两个操作是相同的。如果要更改,则传递by-reference更有效,因为它不必复制数组。
也就是说,引用传递应该由函数签名处理,即:
private function _validate_post_data(&$data) {
// do stuff
}
如果不这样做,将导致严格的标准错误。