How to fix Magento on PHP 5.3

We got this project when our server is newly loaded with PHP 5.3.

Here is the Fix:

To get it working in php5.3 seems to be quite simple as the offending part of the __toString function seems to be only used by one object:
app/code/core/Mage/Catalog/Model/Layer/Filter/Price.php which calls the function with the defaults anyway.
in /lib/Varien/Object.php line 484 replace:

public function __toString(array $arrAttributes = array(), $valueSeparator=',')
$arrData = $this->toArray($arrAttributes);
return implode($valueSeparator, $arrData);


public function __toString()
        $arrData = $this->toArray();
        return implode(',', $arrData);

You also need to change app/code/core/Mage/Catalog/Model/Layer/Filter/Price.php line 139 (untested) to:

$key.= implode('_', $taxReq->_data); 

The next thing to contend with is that split() is now depricated and there is a new error constant which Magento does not (yet) recognise. To ignore the error edit the file app/code/core/Mage/Core/functions.php after line 170 add :

if ($errno == 8192) {
        return false;

You’ll also need to ensure that index.php has the line:
ini_set(’display_errors’, 0);

Don’t know if any other issues arise but this has got it setup for me and so I can carry on evaluating whether we use this or not.

You can find a clear details in the following posts. (Solution is taken from this).