diff --git a/src/Illuminate/Cache/MemcachedStore.php b/src/Illuminate/Cache/MemcachedStore.php index 7ee8bb001ae9..54864badf012 100755 --- a/src/Illuminate/Cache/MemcachedStore.php +++ b/src/Illuminate/Cache/MemcachedStore.php @@ -5,6 +5,7 @@ use Memcached; use Carbon\Carbon; use Illuminate\Contracts\Cache\Store; +use ReflectionMethod; class MemcachedStore extends TaggableStore implements Store { @@ -22,6 +23,13 @@ class MemcachedStore extends TaggableStore implements Store */ protected $prefix; + /** + * A flag indicating whether the Memcached version is >= 3.0.0 + * + * @var bool + */ + protected $memcached_version_3_0; + /** * Create a new Memcached store. * @@ -33,6 +41,7 @@ public function __construct($memcached, $prefix = '') { $this->setPrefix($prefix); $this->memcached = $memcached; + $this->memcached_version_3_0 = (new ReflectionMethod('Memcached', 'getMulti'))->getNumberOfParameters() == 2; } /** @@ -64,7 +73,12 @@ public function many(array $keys) return $this->prefix.$key; }, $keys); - $values = $this->memcached->getMulti($prefixedKeys, null, Memcached::GET_PRESERVE_ORDER); + if ($this->memcached_version_3_0) { + $values = $this->memcached->getMulti($prefixedKeys, Memcached::GET_PRESERVE_ORDER); + } else { + $null = null; + $values = $this->memcached->getMulti($prefixedKeys, $null, Memcached::GET_PRESERVE_ORDER); + } if ($this->memcached->getResultCode() != 0) { return array_fill_keys($keys, null);