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 another file -Status: Verified +Status: Bogus Type: Bug Package: Scripting Engine problem PHP Version: 5.3.3 Block user comment: N New Comment: So... Not a bug. Previous Comments: ------------------------------------------------------------------------ [2010-10-16 17:07:32] fel...@php.net This is because when the code is in another file, the error is triggered in runtime, and when it is in the same file, it is triggered in compile-time, so EG(error_reporting) has the default value (E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED). ------------------------------------------------------------------------ [2010-10-16 16:34:33] fel...@php.net 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. ------------------------------------------------------------------------ [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