Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:16286 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 91555 invoked by uid 1010); 21 May 2005 14:51:43 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 78815 invoked from network); 21 May 2005 14:33:45 -0000 Received: from unknown (HELO pb1.pair.com) (127.0.0.1) by localhost with SMTP; 21 May 2005 14:33:45 -0000 X-Host-Fingerprint: 81.169.182.136 ajaxatwork.net Linux 2.4/2.6 Received: from ([81.169.182.136:52226] helo=strato.aixcept.de) by pb1.pair.com (ecelerity 1.2 r(5656M)) with SMTP id E4/C8-19821-8C64F824 for ; Sat, 21 May 2005 10:33:45 -0400 Received: from baumbart.mbo (dsl-082-083-247-061.arcor-ip.net [82.83.247.61]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by strato.aixcept.de (Postfix) with ESMTP id D53A835C272 for ; Sat, 21 May 2005 16:44:28 +0200 (CEST) Date: Sat, 21 May 2005 16:33:44 +0200 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <4610438228.20050521163344@marcus-boerger.de> To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------D8B01A51BA1CB12" Subject: Changing output of print_r() and var_dump() From: mail@marcus-boerger.de (Marcus Boerger) ------------D8B01A51BA1CB12 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello internals, i want to chnage the output of print_r() and var_dump() so that it shows the class a private property was declared in. The problem is that at the moment both only state that the property is private so that you cannot see which class level it belongs to and if there is any derived class with a private property having the same name you cannot distinguish them. See patch attached. Here is the output of the unpatched version: php > class T { php { protected $pro = 1; php { private $pri = 2; php { public $pub = 3; php { } ew T; php > $o = new T; php > print_r($o); T Object ( [pro:protected] => 1 [pri:private] => 2 [pub] => 3 ) php > class TT extends T { php { private $pri = 4; php { } php > $oo = new TT; php > print_r($oo); TT Object ( [pri:private] => 4 [pro:protected] => 1 [pri:private] => 2 [pub] => 3 ) php > Here is the output of the patched version: php > class T { php { protected $pro = 1; php { private $pri = 2; php { public $pub = 3; php { } php > $o = new T; php > print_r($o); T Object ( [pro:protected] => 1 [pri:private:T] => 2 [pub] => 3 ) php > class TT extends T { php { private $pri = 4; php { } php > $oo = new TT; php > print_r($oo); TT Object ( [pri:private:TT] => 4 [pro:protected] => 1 [pri:private:T] => 2 [pub] => 3 ) If nobody objects i'll apply this tomorrow. -- Best regards, Marcus mailto:mail@marcus-boerger.de ------------D8B01A51BA1CB12 Content-Type: text/plain; name="ze2-private-properties-20050521.diff.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="ze2-private-properties-20050521.diff.txt" SW5kZXg6IGV4dC9zdGFuZGFyZC92YXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVw b3NpdG9yeS9waHAtc3JjL2V4dC9zdGFuZGFyZC92YXIuYyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4xOTgKZGlmZiAtdSAtcCAtZCAtcjEuMTk4IHZhci5jCi0tLSBleHQvc3RhbmRhcmQv dmFyLmMJMjMgRmViIDIwMDUgMTE6MTc6NTIgLTAwMDAJMS4xOTgKKysrIGV4dC9zdGFuZGFy ZC92YXIuYwkyMSBNYXkgMjAwNSAxNDoyODo1NiAtMDAwMApAQCAtODEsNyArODEsOCBAQCBz dGF0aWMgaW50IHBocF9vYmplY3RfcHJvcGVydHlfZHVtcCh6dmFsCiAJCQlpZiAoY2xhc3Nf bmFtZVswXT09JyonKSB7CiAJCQkJWkVORF9QVVRTKCI6cHJvdGVjdGVkIik7CiAJCQl9IGVs c2UgewotCQkJCVpFTkRfUFVUUygiOnByaXZhdGUiKTsKKwkJCQlaRU5EX1BVVFMoIjpwcml2 YXRlOiIpOworCQkJCVpFTkRfUFVUUyhjbGFzc19uYW1lKTsKIAkJCX0KIAkJfSBlbHNlIHsK IAkJCXBocF9wcmludGYoIiUqY1tcIiVzIiwgbGV2ZWwgKyAxLCAnICcsIGhhc2hfa2V5LT5h cktleSk7CkluZGV4OiBaZW5kL3plbmQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVw b3NpdG9yeS9aZW5kRW5naW5lMi96ZW5kLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAw CmRpZmYgLXUgLXAgLWQgLXIxLjMwMCB6ZW5kLmMKLS0tIFplbmQvemVuZC5jCTE4IE1heSAy MDA1IDE4OjEwOjI0IC0wMDAwCTEuMzAwCisrKyBaZW5kL3plbmQuYwkyMSBNYXkgMjAwNSAx NDoyODo1NyAtMDAwMApAQCAtMTMzLDcgKzEzMyw4IEBAIHN0YXRpYyB2b2lkIHByaW50X2hh c2goSGFzaFRhYmxlICpodCwgaW4KIAkJCQkJCWlmIChjbGFzc19uYW1lWzBdPT0nKicpIHsK IAkJCQkJCQlaRU5EX1BVVFMoIjpwcm90ZWN0ZWQiKTsKIAkJCQkJCX0gZWxzZSB7Ci0JCQkJ CQkJWkVORF9QVVRTKCI6cHJpdmF0ZSIpOworCQkJCQkJCVpFTkRfUFVUUygiOnByaXZhdGU6 Iik7CisJCQkJCQkJWkVORF9QVVRTKGNsYXNzX25hbWUpOwogCQkJCQkJfQogCQkJCQl9CiAJ CQkJfSBlbHNlIHsK ------------D8B01A51BA1CB12--