sql >> Database >  >> RDS >> Mysql

PHP - Strikte standaarden:alleen variabelen mogen als referentie worden doorgegeven

Het probleem zit hier in je if-statement:

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

U kunt de uitvoer van array_keys() . niet doorgeven door te verwijzen, dus je moet het eerst aan een variabele toewijzen om het door te kunnen geven als referentie. Zoals dit:

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

Waarom moet je dit doen?

Omdat end() stelt de interne aanwijzer van de array in op het laatste element, dus het doet dit door te verwijzen (je zult ook merken dat je de geretourneerde waarde van end niet hoeft toe te wijzen, omdat het allemaal door verwijzing wordt gedaan). U kunt dus de retourwaarde van array_keys() . niet doorgeven door verwijzing, omdat u het volgende alleen door verwijzing kunt doorgeven:

  • Variabelen, bijv. foo($a)
  • Nieuwe uitspraken, bijv. foo(new foobar())
  • Referenties geretourneerd door functies, d.w.z.:

U kunt meer lezen over het doorgeven door middel van verwijzing in de handleiding:http://php .net/manual/en/language.references.pass.php



  1. ZDLRA – RMAN-20035 ongeldige hoge RECID

  2. Zoeken naar producten met meerdere criteria

  3. Verschil tussen INSERT en COPY

  4. E-mail verzenden vanuit MySQL 5.1