Возможно ли, что эта строка кода PHP
if ($this->greatestId()["num_rows"] > 0) работает в PHP 5.5 и возвращает ошибку в 5.3 ??
 PHP Parse error: syntax error, unexpected '[' in /var/www/app/AppDAO.php on line 43 
Как я могу изменить его для работы в PHP 5.3?
Разрушение разворота было доступно в PHP 5.4. Поэтому это не работает в PHP 5.3. Таким образом, у вас есть дополнительный шаг, когда вам нужно получить значение массива из вашего вызова функции, а затем вы можете его использовать:
 $variable = $this->greatestId(); if ($variable["num_rows"] > 0){ // do stuff } 
  Вы не можете использовать это, if ($this->greatestId()["num_rows"] > 0) в PHP 5.3 используйте этот код ниже. 
 $var = $this->greatestId(); if ($var["num_rows"] > 0){ // your code } 
Как упоминалось в примечаниях к PHP 5.4:
Начиная с PHP 5.4, можно массировать разыменовывать результат вызова функции или метода напрямую. До этого было возможно только использование временной переменной.
Это невозможно сделать в PHP 5.3, вам нужно использовать переменную.