Fix ObjectCache::newAccelerator with string fallback in PHP 5.3
authorMarius Hoch <hoo@online.de>
Sat, 3 Oct 2015 17:15:33 +0000 (19:15 +0200)
committerMarius Hoch <hoo@online.de>
Sat, 3 Oct 2015 17:15:33 +0000 (19:15 +0200)
Because in PHP5.3:

php > $a = "hash";
php > echo isset( $a['fallback'] );
1
php > echo $a['fallback'];
h

This will fix using MediaWiki with MySQL on PHP5.3
if neither APC, xcache nor wincache are available.

Change-Id: Iebf034be75b282e2654cd298713455caf062eda4

includes/objectcache/ObjectCache.php

index 0d40052..70e97ff 100644 (file)
@@ -198,7 +198,9 @@ class ObjectCache {
         */
        public static function newAccelerator( $params = array(), $fallback = null ) {
                if ( $fallback === null ) {
-                       if ( isset( $params['fallback'] ) ) {
+                       // The is_array check here is needed because in PHP 5.3:
+                       // $a = 'hash'; isset( $params['fallback'] ); yields true
+                       if ( is_array( $params ) && isset( $params['fallback'] ) ) {
                                $fallback = $params['fallback'];
                        } elseif ( !is_array( $params ) ) {
                                $fallback = $params;