function main(Base $b) { $x = $b->foo(); var_dump($x); }
<?php class Base { public $aaa = 1; protected $bbb = 2; private $ccc = 3; function foo($obj) { var_dump(get_class($obj)); var_dump(get_object_vars($obj)); } } class Child extends Base { public $ddd = 5; protected $eee = 6; private $fff = 4; } $base_obj = new Base(); $base_obj->foo($base_obj);
<?php class Base { public $aaa = 1; protected $bbb = 2; private $ccc = 3; function foo($obj) { var_dump(get_class($obj)); var_dump(get_object_vars($obj)); } } class Child extends Base { public $ddd = 4; protected $eee = 5; private $fff = 6; } $base_obj = new Base(); $child_obj = new Child(); $base_obj->foo($child_obj);
function main(Base $b) { $x = $b->foo(); $x->say(); }
<?php class Base { public static function __callStatic($method, $args) { $klass = get_called_class(); echo "class {$klass}\n"; } } class Derived extends Base { } Base::foo(); Derived::foo();