Bug #52783 [NEW]: error on construct's Access level

From: Date: Mon, 06 Sep 2010 14:45:21 +0000
Subject: Bug #52783 [NEW]: error on construct's Access level
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-154115@lists.php.net to get a copy of this message
From:             
Operating system: Linux nvirus 2.6.28-19-generic 
PHP version:      5.3.3
Package:          *General Issues
Bug Type:         Bug
Bug description:error on construct's Access level

Description:
------------
given an abstract class Foo which has a constructor public:

abstract class Foo{
 public function __construct (){
    echo "Foor ::";
 }
}

and a concrete class(Bar) that extends Foo, but the latter has its
constructor protected:

final class Bar extends {
  protected function __construct () {
   parent:: __construct (); 
   echo "bar";
  }
}

It generates a fatal error.

This is expected behavior of normal methods, but not for constructors

Test script:
---------------
abstract class Foo{
    public function __construct(){
        echo "Foo::";
    }
}

final class Bar extends Foo{
    protecte function __construct(){
        parent::__construct();
        echo "bar";
    }
    
    public static function bar(){
       new self();
    }
}

Bar::bar();

Expected result:
----------------
Foo::bar

Actual result:
--------------
Fatal error: Access level to Bar::__construct() must be public (as in class
Foo) in /var/www/index.php on line 17 

-- 
Edit bug report at http://bugs.php.net/bug.php?id=52783&edit=1
-- 
Try a snapshot (PHP 5.2):            http://bugs.php.net/fix.php?id=52783&r=trysnapshot52
Try a snapshot (PHP 5.3):            http://bugs.php.net/fix.php?id=52783&r=trysnapshot53
Try a snapshot (trunk):              http://bugs.php.net/fix.php?id=52783&r=trysnapshottrunk
Fixed in SVN:                        http://bugs.php.net/fix.php?id=52783&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=52783&r=needdocs
Fixed in release:                    http://bugs.php.net/fix.php?id=52783&r=alreadyfixed
Need backtrace:                      http://bugs.php.net/fix.php?id=52783&r=needtrace
Need Reproduce Script:               http://bugs.php.net/fix.php?id=52783&r=needscript
Try newer version:                   http://bugs.php.net/fix.php?id=52783&r=oldversion
Not developer issue:                 http://bugs.php.net/fix.php?id=52783&r=support
Expected behavior:                   http://bugs.php.net/fix.php?id=52783&r=notwrong
Not enough info:                     http://bugs.php.net/fix.php?id=52783&r=notenoughinfo
Submitted twice:                     http://bugs.php.net/fix.php?id=52783&r=submittedtwice
register_globals:                    http://bugs.php.net/fix.php?id=52783&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=52783&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=52783&r=dst
IIS Stability:                       http://bugs.php.net/fix.php?id=52783&r=isapi
Install GNU Sed:                     http://bugs.php.net/fix.php?id=52783&r=gnused
Floating point limitations:          http://bugs.php.net/fix.php?id=52783&r=float
No Zend Extensions:                  http://bugs.php.net/fix.php?id=52783&r=nozend
MySQL Configuration Error:           http://bugs.php.net/fix.php?id=52783&r=mysqlcfg



Thread (2 messages)

« previous php.bugs (#154115) next »