- var_dump: documentation ( source)
- strtolower: documentation ( source)
<?php
trait setData {
static function setData( $data ) {
DataCollector::collectedData( 'set', $data );
}
}
trait dataHandler {
use setData;
static function getCollectedData() {
DataCollector::collectedData( 'get' );
}
private static function collectedData( $type, $value = NULL ) {
if( strtolower( $type ) === 'set' ) {
DataCollector::$CollectionData[] = $value;
var_dump( new DataCollector() );
}
elseif( strtolower( $type ) === 'get' )
return DataCollector::$CollectionData;
}
}
class DataCollector {
use dataHandler { collectedData as public; }
public function __construct() { return self; }
private static $CollectionData = array();
}
class Form { use setData {} }
class Field extends Form {
public function __construct( $type, $text = NULL ) {
self::setData( $type );
}
}
class A {
use setData{}
public function __construct( $type, $text = NULL ) {
self::setData( $type );
}
}
$Field1 = new Field( '1' );
$Field2 = new Field( '2' );
$A = new A( '3' );
#DataCollector::setData('4');
#dataHandler::setData('5');
var_dump( DataCollector::getCollectedData() );