- var_dump: documentation ( source)
<?php
namespace Traverse\Test {
interface MyTypeInterface {
function getPropertyA();
function getPropertyB();
}
class MyType implements MyTypeInterface {
private $_propertyA;
private $_propertyB;
final public function getPropertyA() {
return $this->_propertyA;
}
final public function getPropertyB() {
return $this->_propertyB;
}
final private function setPropertyA($propertyA) {
// $propertyA assertions
$this->_propertyA = $propertyA;
}
final private function setPropertyB($propertyB) {
// $propertyB assertions
$this->_propertyB = $propertyB;
}
public function __construct(MyTypeInterface $myType) {
$this->setPropertyA($myType->getPropertyA());
$this->setPropertyB($myType->getPropertyB());
}
}
class MyTypeBuilder implements MyTypeInterface {
private $_propertyA;
private $_propertyB;
public function getPropertyA() {
return $this->_propertyA;
}
public function setPropertyA($propertyA) {
$this->_propertyA = $propertyA;
}
public function getPropertyB() {
return $this->_propertyB;
}
public function setPropertyB($propertyB) {
$this->_propertyB = $propertyB;
}
}
$myTypeBuilder = new MyTypeBuilder();
$myTypeBuilder->setPropertyA('foo');
$myTypeBuilder->setPropertyB('bar');
$myType = new MyType($myTypeBuilder);
var_dump($myTypeBuilder, $myType);
/*
object(Traverse\Test\MyTypeBuilder)#1 (2) {
["_propertyA":"Traverse\Test\MyTypeBuilder":private]=>
string(3) "foo"
["_propertyB":"Traverse\Test\MyTypeBuilder":private]=>
string(3) "bar"
}
object(Traverse\Test\MyType)#2 (2) {
["_propertyA":"Traverse\Test\MyType":private]=>
string(3) "foo"
["_propertyB":"Traverse\Test\MyType":private]=>
string(3) "bar"
}
*/
}