Edit report at http://bugs.php.net/bug.php?id=53082&edit=1
ID: 53082 Updated by: fel...@php.net Reported by: giorgio dot liscio at email dot it Summary: unexp. warning with abstract static methods used inside namespace/required file -Status: Open +Status: Verified Type: Bug Package: Class/Object related PHP Version: 5.3.3 Block user comment: N New Comment: The namespace is not a factor, but the require yes. Internally the php_error_cb() function is called for both cases, but just displays when the code is in another file because EG(error_reporting) is set to 'E_ALL | E_STRICT', when it's in the same file, EG(error_reporting) is 22519. Previous Comments: ------------------------------------------------------------------------ [2010-10-16 09:36:52] giorgio dot liscio at email dot it Description: ------------ without namespace works perfectly: <?php // index.php ini_set("display_errors", true); ini_set("error_reporting", E_ALL | E_STRICT); abstract class AbstractFileSystemItem { abstract static function ensurePathIsValid($fullPath); } class Dir extends AbstractFileSystemItem { static function ensurePathIsValid($fullPath){} } ?> -------------------------------------------------------- with namespace and require: (test the two files) gives unexpected warning Static function AbstractFileSystemItem::ensurePathIsValid() should not be abstract <?php // index.php (run this) ini_set("display_errors", true); ini_set("error_reporting", E_ALL | E_STRICT); require("FSNuovo/Directory.php"); ?> <?php // FSNuovo/Directory.php namespace FSNuovo; abstract class AbstractFileSystemItem { abstract static function ensurePathIsValid($fullPath); } class Dir extends AbstractFileSystemItem { static function ensurePathIsValid($fullPath){} } ?> original discussion: http://bugs.php.net/bug.php?id=53081 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53082&edit=1