Problemet er her i din if-erklæring:
end(array_keys($params['territories']))
Du kan ikke sende output fra array_keys()
ved reference, så du skal først tildele den til en variabel for at kunne videregive den ved reference. Sådan:
$a = array_keys($params['territories']);
if ($key == end($a)) {
Hvorfor skal du gøre dette?
Fordi end()
indstiller den interne pointer for arrayet til det sidste element, så det gør dette ved reference (du vil også bemærke, at du ikke behøver at tildele returværdien for end, fordi det hele gøres ved reference). Så du kan ikke sende returværdien af array_keys()
ved reference, fordi du kun kan bestå følgende ved reference:
- Variabler, dvs. foo($a)
- Nye udsagn, dvs. foo(ny foobar())
- Referencer returneret fra funktioner, dvs.:
Du kan læse mere om at passere ved reference i manualen:http://php .net/manual/en/language.references.pass.php