. Fixed bug #78614 (Does not compile with DTRACE anymore).
(tz at FreeBSD dot org)
. Fixed bug #78620 (Out of memory error). (cmb, Nikita)
+ . Fixed bug #78632 (method_exists() in php74 works differently from php73 in
+ checking priv. methods). (Nikita)
- Pcntl:
. Fixed bug #77335 (PHP is preventing SIGALRM from specifying SA_RESTART).
?>
--EXPECT--
-bool(false)
+bool(true)
bool(true)
bool(true)
bool(true)
zend_string_release_ex(lcname, 0);
if (func) {
- RETURN_BOOL(!(func->common.fn_flags & ZEND_ACC_PRIVATE) || func->common.scope == ce);
+ /* Exclude shadow properties when checking a method on a specific class. Include
+ * them when checking an object, as method_exists() generally ignores visibility.
+ * TODO: Should we use EG(scope) for the object case instead? */
+ RETURN_BOOL(Z_TYPE_P(klass) == IS_OBJECT
+ || !(func->common.fn_flags & ZEND_ACC_PRIVATE) || func->common.scope == ce);
}
if (Z_TYPE_P(klass) == IS_OBJECT) {
echo "Done";
?>
--EXPECT--
- ---(Using string class name)---
+---(Using string class name)---
Does C::inherit_pub exist? bool(true)
Does C::inherit_prot exist? bool(true)
Does C::inherit_priv exist? bool(false)
---(Using object)---
Does C::inherit_pub exist? bool(true)
Does C::inherit_prot exist? bool(true)
-Does C::inherit_priv exist? bool(false)
+Does C::inherit_priv exist? bool(true)
Does C::inherit_static_pub exist? bool(true)
Does C::inherit_static_prot exist? bool(true)
-Does C::inherit_static_priv exist? bool(false)
+Does C::inherit_static_priv exist? bool(true)
Does C::pub exist? bool(true)
Does C::prot exist? bool(true)
Does C::priv exist? bool(true)