Edit report at https://bugs.php.net/bug.php?id=75449&edit=1
ID: 75449
Comment by: saintatgod at gmail dot com
Reported by: alex dot rill at yandex dot ru
Summary: Ignored return type for abstract methods, defined in
traits
Status: Open
Type: Bug
Package: Class/Object related
Operating System: Windows
PHP Version: 7.1.11
Block user comment: N
Private report: N
New Comment:
where is Class D ?
Previous Comments:
------------------------------------------------------------------------
[2017-10-28 06:25:31] alex dot rill at yandex dot ru
Description:
------------
Dont speak english. All in example code.
---
From manual page: http://www.php.net/language.oop5.traits
---
Test script:
---------------
<?php
trait T {
abstract static function values(): array;
}
class B {
use T;
static function values() {
return 'Worked!'; // string, not array
}
}
echo B::values(); // print: Worked!
abstract class B {
use T;
}
class C extends B {
static function values() {
return 'Don\'t worked';
}
}
echo C::values(); // Fatal Error: Class D contains 1 abstract method and must therefore be declared
abstract or implement the remaining methods (C::values)
?>
Online example: http://sandbox.onlinephpfunctions.com/code/7b26e7237abcf97d15aac6a0868c084241bf8d0c
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=75449&edit=1