Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26296 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 99094 invoked by uid 1010); 3 Nov 2006 11:01:05 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 99073 invoked from network); 3 Nov 2006 11:01:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Nov 2006 11:01:05 -0000 Received: from [127.0.0.1] ([127.0.0.1:5090]) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ECSTREAM id 9E/1E-06002-0712B454 for ; Fri, 03 Nov 2006 06:01:05 -0500 Authentication-Results: pb1.pair.com header.from=fangel@sevengoslings.net; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=fangel@sevengoslings.net; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain sevengoslings.net from 195.41.46.235 cause and error) X-PHP-List-Original-Sender: fangel@sevengoslings.net X-Host-Fingerprint: 195.41.46.235 pfepa.post.tele.dk Linux 2.5 (sometimes 2.4) (4) Received: from [195.41.46.235] ([195.41.46.235:35040] helo=pfepa.post.tele.dk) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 55/9C-06002-0F31B454 for ; Fri, 03 Nov 2006 05:03:30 -0500 Received: from [192.168.1.38] (0x503e38ce.ronxx2.adsl-dhcp.tele.dk [80.62.56.206]) by pfepa.post.tele.dk (Postfix) with ESMTP id A08B8FAC03F for ; Fri, 3 Nov 2006 11:03:07 +0100 (CET) To: internals@lists.php.net Date: Fri, 3 Nov 2006 11:03:06 +0100 User-Agent: KMail/1.9.5 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-ID: <200611031103.06234.fangel@sevengoslings.net> Subject: ReflectionProperty change between 5.1 and 5.2 From: fangel@sevengoslings.net (Morten Fangel) Hi, Lets say I have a class class MyClass protected $foo = 'bar'; } In PHP 5.1 I could do $myobj = new MyClass(); $c = new ReflectionClass($myobj); $p = $c->getProperty('foo'); echo $p->getValue($myobj); // bar But in PHP 5.2 I now get an exception with "Cannot access non-public member MyClass::foo" Yes, I do know that "protected" is supposed to make the variable internal (hence non-public), but shouldn't the ReflectionAPI enable one to "reverse engineer" all classes and properties - including the ones hidden in run-time? And if not, then how come it was like this in 5.1? -fangel