問題はifステートメントにあります:
end(array_keys($params['territories']))
array_keys()
の出力を渡すことはできません 参照によって渡すことができるようにするには、最初に変数に割り当てる必要があります。このように:
$a = array_keys($params['territories']);
if ($key == end($a)) {
なぜあなたはこれをしなければならないのですか?
end()
配列の内部ポインタを最後の要素に設定するため、これは参照によって行われます(endの戻り値はすべて参照によって行われるため、割り当てる必要がないことにも気付くでしょう)。したがって、array_keys()
の戻り値を渡すことはできません。 参照によって、以下を参照によってのみ渡すことができるため、参照によって:
- 変数、つまりfoo($ a)
- 新しいステートメント、つまりfoo(new foobar())
- 関数から返される参照、つまり:
参照による受け渡しの詳細については、マニュアルを参照してください: http:// php .net / manual / en / language.references.pass.php