sql >> Databasteknik >  >> RDS >> Mysql

PHP - Strikta standarder:Endast variabler ska skickas med referens

Problemet finns här i ditt if-uttalande:

end(array_keys($params['territories']))

Du kan inte skicka utdata från array_keys() genom referens, så du måste först tilldela den till en variabel för att kunna skicka den genom referens. Så här:

$a = array_keys($params['territories']);
if ($key == end($a)) {

Varför måste du göra det här?

Eftersom end() ställer in den interna pekaren för arrayen till det sista elementet, så den gör detta genom referens (du kommer också att märka att du inte behöver tilldela returvärdet för end, eftersom det hela görs genom referens). Så du kan inte skicka returvärdet för array_keys() genom referens, eftersom du bara kan skicka följande genom referens:

  • Variabler, dvs foo($a)
  • Nya uttalanden, dvs foo(new foobar())
  • Referenser som returneras från funktioner, dvs.:

Du kan läsa mer om att passera genom referens i manualen:http://php .net/manual/en/language.references.pass.php



  1. Hitta databasdata som bäst passar användarvariabelsvar

  2. Cloud Vendor Deep-Dive:PostgreSQL på AWS Aurora

  3. Hur man ändrar eller tar bort ett specifikt JSON-objekt från JSON-arrayen lagrad i jsonb-kolumntypen i PostgreSQL med where-sats?

  4. Hur man tar bort filer i SQL Server 2019