Funzione empty() e PHP Fatal error: Can't use function return value in write context

05 gennaio 2018

​Se nell'utilizzare in PHP la funzione empty() ci troviamo di fronte all'errore PHP Fatal error:  Can't use function return value in write context, probabilmente la causa è da attribuire alle seguenti due circostanze:

  1. stiamo utilizzando una versione di PHP precedente alla 5.5
  2. ​l'argomento della funzione empty non è una semplice variabile

Ad esempio il seguente codice genera l'errore:

<?php
$var = 'aabbvvv';
if(empty(strlen($var)))
{
//codice
}

invece dovremmo scrivere:

<?php
$var = 'aabbvvv';
$ln = strlen($var);
if(empty($ln))
{
//codice
}
 In questo caso infatti l'argomento di empty() è la variabile $ln.

Dalla versione di PHP 5.5 in poi il problema non sussiste perchè la funzione supporta anche espressioni come argomento.