You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementation of static isset/unset code, added numerous tests.
ADDED: zend_compile_string_inline() - Compiles code straight into current op_array.
ADDED: Automatic setting of function purpose for internal functions to ZEND_FNP_UNDEFINED
ADDED: Handling of static self::$a accessor handling.
CHANGE: Changed the way that automated implementations are coded. All automatic implementations are now embeded/built PHP strings run through zend_compile_string_inline(). Performance testing shows excellent performance and the code is 10x simpler.
ADDED: Automatic implementation of isset/unset in the case of no declaration at all, when appropriate.
ADDED: Implementation of static isset/unset code.
CHANGE: pass_two() was modified to catch static gets where there is no getter. Static setters work by converting any class::$a into the getter, then the followup zend_do_assign() backpatches the getter into a setter call. When no zend_do_assign() is made and there is no getter, this is caught in pass_two()
- pass_two() also allows for more accurate error file/line reporting now as well.
Copy file name to clipboardExpand all lines: tests/classes/accessor_interface_error.phpt
+1-1
Original file line number
Diff line number
Diff line change
@@ -16,4 +16,4 @@ class TimePeriod implements Hours {
16
16
17
17
?>
18
18
--EXPECTF--
19
-
Fatal error: Class TimePeriod contains 2 abstract accessors and must be declared abstract or implement the remaining accessors (get Hours::$Hours, set Hours::$Hours) in %s on line %d
19
+
Fatal error: Class TimePeriod contains 4 abstract accessors and must be declared abstract or implement the remaining accessors (get Hours::$Hours, set Hours::$Hours, isset Hours::$Hours, ...) in %s on line %d
0 commit comments