, . :
$o = new stdClass;
$o->{"123"} = 'foo';
echo $o->{"123"}, PHP_EOL;
$a = (array)$o;
echo $a['123'];
var_dump(array_keys($a));
print_r($a);
, PHP -, .
, null
private protected , "\0". ( , ), , , . :
class A {
private $A;
}
class B extends A {
private $A;
public $AA;
}
$a = (array) new B();
print_r(array_keys($a));
print_r(array_map('bin2hex', array_keys($a)));
:
$a = (array) new B();
foreach ($a as $k => $v) {
$parts = explode(chr(0), $k);
if (count($parts) == 1) {
echo 'public $'.$parts[0].PHP_EOL;
}
else if ($parts[1] == "*") {
echo 'protected $'.$parts[2].PHP_EOL;
}
else {
echo 'private '.$parts[1].'::$'.$parts[2].PHP_EOL;
}
}