Bug #78776 [Com]: Abstract method implementation in trait

From: Date: Tue, 05 Nov 2019 13:17:51 +0000
Subject: Bug #78776 [Com]: Abstract method implementation in trait
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-223574@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78776&edit=1 ID: 78776 Comment by: rowan dot collins at gmail dot com Reported by: mozafar dot gholami at gmail dot com Summary: Abstract method implementation in trait Status: Verified Type: Bug Package: Scripting Engine problem Operating System: Win 10 PHP Version: 7.3.11 Block user comment: N Private report: N New Comment: Specifically, the error when implementing the method directly is: > Fatal error: Cannot make non static method A::createApp() static in class B https://3v4l.org/it0Se The error is displayed correctly if the base method is not abstract: https://3v4l.org/I2E5Y Previous Comments: ------------------------------------------------------------------------ [2019-11-04 07:55:11] cmb@php.net Confirmed: <https://3v4l.org/WgSfr> ------------------------------------------------------------------------ [2019-11-04 07:38:20] mozafar dot gholami at gmail dot com Description: ------------ abstract methods should be implemented by child class and should not be static but when the implementation comes from a trait it cloud be static and code continue running without any problem. Test script: --------------- <?php abstract class A { abstract public function createApp(); } class B extends A { use C; } trait C { public static function createApp() { echo "You should not be here"; } } B::createApp(); Expected result: ---------------- Error for not implementing abstract method ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=78776&edit=1

« previous php.bugs (#223574) next »