diff options
-rw-r--r-- | Zend/zend_builtin_functions.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index dca0890b14..582296a8df 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1381,11 +1381,10 @@ ZEND_FUNCTION(class_exists) ce = zend_hash_find_ptr(EG(class_table), lc_name); zend_string_release(lc_name); - RETURN_BOOL(ce && !((ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT)) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)); + } else { + ce = zend_lookup_class(class_name); } - ce = zend_lookup_class(class_name); - if (ce) { RETURN_BOOL((ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT)) == 0); } else { @@ -1467,12 +1466,12 @@ ZEND_FUNCTION(trait_exists) ce = zend_hash_find_ptr(EG(class_table), lc_name); zend_string_release(lc_name); - RETURN_BOOL(ce && ((ce->ce_flags & ZEND_ACC_TRAIT) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)); + } else { + ce = zend_lookup_class(trait_name); } - ce = zend_lookup_class(trait_name); if (ce) { - RETURN_BOOL((ce->ce_flags & ZEND_ACC_TRAIT) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + RETURN_BOOL((ce->ce_flags & ZEND_ACC_TRAIT) != 0); } else { RETURN_FALSE; } |