0
在「foreach」循環內引入一些變量引用的問題。爲什麼PHP中的foreach中的變量引用工作方式不同?
這是我的CakePHP的代碼片段: http://pastebin.com/s7qtYahA
第一代碼分配了相同數量的內部「foreach」循環迭代的雙重分配。
但第二個代碼確實一切正常。 任何人都可以請澄清扭曲..?提前致謝。 :)
在「foreach」循環內引入一些變量引用的問題。爲什麼PHP中的foreach中的變量引用工作方式不同?
這是我的CakePHP的代碼片段: http://pastebin.com/s7qtYahA
第一代碼分配了相同數量的內部「foreach」循環迭代的雙重分配。
但第二個代碼確實一切正常。 任何人都可以請澄清扭曲..?提前致謝。 :)
因爲$值已復位/清除使用數組()
<?php
foreach($fields as &$field){
$fieldValues = $this->controller->DomainFormFieldValue->find('all', array('conditions' => array('domain_form_field_id' => $field['DomainFormField']['id'])));
foreach($fieldValues as $fieldValue){
$field['DomainFormFieldValue'][] = $fieldValue['DomainFormFieldValue'];
}
}
unset($field);
?>
2nd code:
<?php
foreach($fields as &$field){
$fieldValues = $this->controller->DomainFormFieldValue->find('all', array('conditions' => array('domain_form_field_id' => $field['DomainFormField']['id'])));
$values = array(); /* Array has been resetted */
foreach($fieldValues as $fieldValue){
$values[] = $fieldValue['DomainFormFieldValue'];
}
$field['DomainFormFieldValue'] = $values;
}
unset($field);
?>
您在第二個代碼中重置了$值,這就是原因。 –
請寫一個最小的測試用例,並張貼作爲問題本身的一部分。通常,在編寫這個最小的測試用例時,會發現原因/問題。 – 2012-11-01 05:18:03