parent
954c0f399b
commit
42dae8ceaa
6 changed files with 131 additions and 2 deletions
@ -0,0 +1,30 @@ |
|||||||
|
--TEST-- |
||||||
|
return abstract class |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
abstract class Base { |
||||||
|
abstract public function foo(); |
||||||
|
} |
||||||
|
|
||||||
|
class User extends Base { |
||||||
|
public function foo() |
||||||
|
{ |
||||||
|
return 'foo'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class Bar { |
||||||
|
public function getUser() : Base { |
||||||
|
return new User(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
$bar = new Bar(); |
||||||
|
$user = $bar->getUser(); |
||||||
|
var_dump($user->foo()); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
string(3) "foo" |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
--TEST-- |
||||||
|
return abstract class |
||||||
|
--SKIPIF-- |
||||||
|
<?php die("skip"); ?> |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
class Base { |
||||||
|
public function foo() { |
||||||
|
return 'base'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class User extends Base { |
||||||
|
public function foo() |
||||||
|
{ |
||||||
|
return 'user'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class Bar { |
||||||
|
public function getUser() : Base { |
||||||
|
return new User(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
$bar = new Bar(); |
||||||
|
$user = $bar->getUser(); |
||||||
|
var_dump($user->foo()); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
string(3) "foo" |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
--TEST-- |
||||||
|
return abstract class |
||||||
|
--SKIPIF-- |
||||||
|
<?php die("skip"); ?> |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
class Base { |
||||||
|
public function test() { |
||||||
|
return 'base'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class User extends Base { |
||||||
|
public function foo() |
||||||
|
{ |
||||||
|
return 'user'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class Bar { |
||||||
|
public function getUser() : Base { |
||||||
|
return new User(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
$bar = new Bar(); |
||||||
|
$user = $bar->getUser(); |
||||||
|
var_dump($user->foo()); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
string(3) "foo" |
||||||
Loading…
Reference in new issue