<?php require 'src/object-ext.php';
class CTest extends CExtendable { public function testing() { $aArgs = func_get_args(); echo "CTest::testing() was called. Arguments:<br/>"; echo '<pre>' . print_r($aArgs, TRUE) . '</pre>'; } }
class CAnotherTest implements IExtendableChild { protected $_oParent; public function extendedFunction() { $aArgs = func_get_args(); echo "CAnotherTest::extendedFunction() was called. Arguments:<br/>"; echo '<pre>' . print_r($aArgs, TRUE) . '</pre>'; // call parent! $this->_oParent->testing('Called from extended class.'); } // IExtendableChild public function _setParent(CExtendable $oParent) { $this->_oParent = $oParent; } }
function testing(_OP $o) { $o->_check(OP(array( 'test' => 'string', 'callback' => 'ICallback', 'object' => 'CTest', ))); // call callback $o->callback('This is another argument!'); // call object method $o->object->testing('Just one argument here.'); }
$test = new CTest();
testing(OP(array( 'test' => 'This is a test', 'callback' => $test->_callback()->testing('This is an argument'), 'object' => $test, )));
// extend $test->_extend(new CAnotherTest()); $test->extendedFunction('This function is extended.');
// test object $object = OP(array( 'int' => 1, 'string' => 'testing', ));
// testing echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; echo ($object->string .= $object->int++) . '<br/>'; ?>
|