When using PHP 7 for Magento shops running CE 1.9 (in this case: 1.9.2.4), problems can occur when uploading images while editing a product. For example, the upload may abort or simply hang without any further error message. The reason for this is the "Uniform Variable Syntax" introduced with PHP 7. In simple terms, this means that when dealing with embedded variables, we now read from left to right rather than from right to left.
For example, the statement
$params['object']->$params['method']($this->_file['tmp_name'])
is no longer interpreted as
$params['object']->{$params['method']}($this->_file['tmp_name'])
but instead as
($params['object']->$params)['method']($this->_file['tmp_name'])
which results in an error. The only solution, therefore, is to explicitly write out the intended interpretation as
$params['object']->{$params['method']}($this->_file['tmp_name']) (see the "old" interpretation above).
And where does this change need to be made? In /lib/Varien/File/Uploader.php, on line 274. However, be careful with future updates, as this is a core hack.
