]> granicus.if.org Git - php/commitdiff
Don't allow interfaces to implement anything
authorZeev Suraski <zeev@php.net>
Wed, 14 Jan 2004 14:00:11 +0000 (14:00 +0000)
committerZeev Suraski <zeev@php.net>
Wed, 14 Jan 2004 14:00:11 +0000 (14:00 +0000)
Zend/zend_compile.c

index bec6dee9f381685e2b91d0eeb2dccc2a8fe62dfa..9432407abd77e6dbbe1d8822dbe91bc508cff32b 100644 (file)
@@ -2420,6 +2420,10 @@ void zend_do_implements_interface(znode *interface_znode TSRMLS_DC)
 {
        zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
 
+       if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
+               zend_error(E_COMPILE_ERROR, "Interfaces cannot implement other classes/interfaces");
+       }
+
        opline->opcode = ZEND_ADD_INTERFACE;
        opline->op1 = CG(implementing_class);
        opline->op2 = *interface_znode;