[php-maint] Bug#463255: php5: Reflection object fails to recognise runtime class properties as public
mark.2391 at blueyonder.co.uk
mark.2391 at blueyonder.co.uk
Wed Jan 30 16:17:33 UTC 2008
Package: php5
Version: 5.2.0-8+etch10
Severity: important
According to a friend, the code below works correctly on PHP 5.2.3 but in the current Debian stable distribuion it fails to produce the right result. Note that the
myRuntimeProperty is absent from the second var_dump at the end.
<?php
class Test
{
public $myDeclaredProperty = 1;
public function __construct()
{
$this->myRuntimeProperty = 2;
}
public function getPublicProperties()
{
$r = new ReflectionObject($this);
$properties = $r->getProperties();
$publicProperties = array();
foreach ($properties as $property) {
if ($property->isPublic()) {
$publicProperties[$property->getName()] =
$property->getValue($this);
}
}
return $publicProperties;
}
}
echo 'Running ' . phpversion() . "\n";
$obj = new Test();
echo "Dumping object:\n";
var_dump($obj);
echo "Dumping public properties according to Reflection object\n";
var_dump($obj->getPublicProperties());
My output:
Running 5.2.0-8+etch10
Dumping object:
object(Test)#1 (2) {
["myDeclaredProperty"]=>
int(1)
["myRuntimeProperty"]=>
int(2)
}
Dumping public properties according to Reflection object
array(1) {
["myDeclaredProperty"]=>
int(1)
}
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (1001, 'stable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-5-amd64
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Versions of packages php5 depends on:
ii libapache2-mod-php5 5.2.0-8+etch10 server-side, HTML-embedded scripti
ii php5-common 5.2.0-8+etch10 Common files for packages built fr
php5 recommends no packages.
-- no debconf information
More information about the pkg-php-maint
mailing list