On Sat, Sep 15, 2001 at 11:42:18AM +0300, Andi Gutmans wrote:
> It's the correct place. It sounds weird what you're mentioning. 
> do_inherit_parent_constructor() also checks ce->parent and it seems to work.
> Do you have a short script (class decelerations) which shows this behavior? 
> What are you trying to accomplish?

I'm experimenting with some extra language features, like abstract class
methods (pure virtual functions in C++).

This is de PHP code:

  class BaseClass {
    function blah() {
      echo "blah\n";
    }
    abstract function foo($a, $b);
  }

  class DerivedClass extends BaseClass {
    function bar() {
      echo "bar\n";
    }
  }

And this is my new: zend_do_end_class_declaration():

 void zend_do_end_class_declaration(CLS_D)
 {
    do_inherit_parent_constructor(CG(active_class_entry));
    do_check_abstract_methods(CG(active_class_entry));
    CG(active_class_entry) = NULL;
 }

With do_check_abstract_methods:

 static void do_check_abstract_methods(zend_class_entry *ce)
 {
   if (ce->parent) {
      fprintf(stderr, "num = %d\n",
        zend_hash_num_elements(&ce->parent->abstract_methods));
   }

   ...
 }

This is with PHP 4.0.6.

Regards,

 Stefan


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to