1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?php
abstract class SimpleObject {
public function methodOne() {
}
public function methodTwo() {
}
}
class ComplexObject extends SimpleObject {
public function methodThree() {
}
}
class Foo {
/**
* @var SimpleObject
*/
private $_object;
public function __construct(SimpleObject $example) {
$this->_object = $example;
}
/**
* Example method returns something like SimpleObject
*
* @return SimpleObject
*/
public function getOject() {
return $this->_object;
}
}
$foo = new Foo();
$fooObject = $foo->getOject();
/*test 1*/$fooObject->methodOne();
/* @var $fooObject ComplexObject */
/*test 2*/$fooObject->methodOne();
?>
|