File tree 2 files changed +18
-5
lines changed
2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -195,6 +195,7 @@ static inline php_memc_object_t *php_memc_fetch_object(zend_object *obj) {
195
195
php_memc_object_t* intern = NULL; \
196
196
php_memc_user_data_t* memc_user_data = NULL;
197
197
198
+ #if PHP_VERSION_ID < 80000
198
199
#define MEMC_METHOD_FETCH_OBJECT \
199
200
intern = Z_MEMC_OBJ_P(object); \
200
201
if (!intern->memc) { \
@@ -203,6 +204,16 @@ static inline php_memc_object_t *php_memc_fetch_object(zend_object *obj) {
203
204
} \
204
205
memc_user_data = (php_memc_user_data_t *) memcached_get_user_data(intern->memc); \
205
206
(void)memc_user_data; /* avoid unused variable warning */
207
+ #else
208
+ #define MEMC_METHOD_FETCH_OBJECT \
209
+ intern = Z_MEMC_OBJ_P(object); \
210
+ if (!intern->memc) { \
211
+ zend_throw_error(NULL, "Memcached constructor was not called"); \
212
+ RETURN_THROWS(); \
213
+ } \
214
+ memc_user_data = (php_memc_user_data_t *) memcached_get_user_data(intern->memc); \
215
+ (void)memc_user_data; /* avoid unused variable warning */
216
+ #endif
206
217
207
218
static
208
219
zend_bool s_memc_valid_key_binary (zend_string * key )
Original file line number Diff line number Diff line change @@ -20,15 +20,17 @@ class extended extends Memcached {
20
20
}
21
21
22
22
error_reporting (E_ALL );
23
- $ extended = new extended ();
24
- var_dump ($ extended ->setOption (Memcached::OPT_BINARY_PROTOCOL , true ));
23
+ try {
24
+ $ extended = new extended ();
25
+ var_dump ($ extended ->setOption (Memcached::OPT_BINARY_PROTOCOL , true ));
26
+ } catch (Error $ e ) {
27
+ echo $ e ->getMessage () . PHP_EOL ;
28
+ }
25
29
26
30
echo "OK " . PHP_EOL ;
27
31
28
32
--EXPECTF --
29
33
Memcached::__construct(): Argument #1 ($persistent_id) must be of type ?string, stdClass given
30
-
31
- Warning: Memcached::setOption (): Memcached constructor was not called in %s
32
- NULL
34
+ Memcached constructor was not called
33
35
OK
34
36
You can’t perform that action at this time.
0 commit comments