<?php
class A {
public $property;
public $propertyForB;
public function __construct() {
$this->propertyForB = new B();
}
public function hello() {
$this->property = 'hello';
return $this;
}
public function world() {
$this->property .= ' world';
return $this->property;
}
}
class B {
public function helloWorld() {
return 'hello world';
}
}
$test = new A();
echo $test->hello()->world();
echo '<br />';
echo $test->propertyForB->helloWorld();
PD9waHAKCmNsYXNzIEEgewoJcHVibGljICRwcm9wZXJ0eTsKCXB1YmxpYyAkcHJvcGVydHlGb3JCOwoJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CgkJJHRoaXMtPnByb3BlcnR5Rm9yQiA9IG5ldyBCKCk7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBoZWxsbygpIHsKCQkkdGhpcy0+cHJvcGVydHkgPSAnaGVsbG8nOwoJCXJldHVybiAkdGhpczsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIHdvcmxkKCkgewoJCSR0aGlzLT5wcm9wZXJ0eSAuPSAnIHdvcmxkJzsKCQlyZXR1cm4gJHRoaXMtPnByb3BlcnR5OwoJfQp9CgoKY2xhc3MgQiB7CQoJcHVibGljIGZ1bmN0aW9uIGhlbGxvV29ybGQoKSB7CgkJcmV0dXJuICdoZWxsbyB3b3JsZCc7Cgl9Cn0KCgokdGVzdCA9IG5ldyBBKCk7CgplY2hvICR0ZXN0LT5oZWxsbygpLT53b3JsZCgpOwoKZWNobyAnPGJyIC8+JzsKCmVjaG8gJHRlc3QtPnByb3BlcnR5Rm9yQi0+aGVsbG9Xb3JsZCgpOw==