sql >> Database teknologi >  >> RDS >> Mysql

PHP - Strenge standarder:Kun variabler bør videregives som reference

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



  1. Kan jeg bruge MySQL LOAD XML LOCAL INFILE, hvis mine rækker ikke har et 'navn'?

  2. Få sidste ID på indsat række i Oracle DB

  3. hvordan man vedligeholder displayrækkefølge i php

  4. Hvordan laver man en mysql-tabel med dato- og tidskolonner?