HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //usr/share/pear/test/memcached/tests/cachecallback.phpt
--TEST--
Memcached::get() with cache callback
--SKIPIF--
<?php if (!extension_loaded("memcached")) print "skip"; ?>
--FILE--
<?php
include dirname (__FILE__) . '/config.inc';
$m = memc_get_instance ();

$runs = 0;

$first_key  = uniqid ('cache_test_');
$second_key = uniqid ('cache_test_');
$third_key  = uniqid ('cache_test_');

var_dump (
$m->get ($first_key, function (Memcached $memc, $key, &$value, &$expiration) {
					$value = "hello";
					$expiration = 10;
					return true;
				})
);

var_dump ($m->get ($first_key));

var_dump (
$m->get ($second_key, function (Memcached $memc, $key, &$value, &$expiration) {
					$value = "hello";
					$expiration = 10;
					return false;
				})
);

var_dump ($m->get ($second_key));

try {
	$m->get ($third_key, function (Memcached $memc, $key, &$value, &$expiration) {
							$value = "hello";
							$expiration = 10;
							throw new Exception ('this is a test');
							return true;
						 });
} catch (Exception $e) {
	echo 'Got exception' . PHP_EOL;
}

var_dump ($m->get ($third_key));


echo "OK" . PHP_EOL;

--EXPECT--
string(5) "hello"
string(5) "hello"
bool(false)
bool(false)
Got exception
bool(false)
OK