Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:23308 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 37178 invoked by uid 1010); 12 May 2006 15:34:12 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 37163 invoked from network); 12 May 2006 15:34:12 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 May 2006 15:34:12 -0000 X-PHP-List-Original-Sender: andi@zend.com X-Host-Fingerprint: 80.74.107.235 mail.zend.com Linux 2.5 (sometimes 2.4) (4) Received: from ([80.74.107.235:40917] helo=mail.zend.com) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 81/49-19568-3FAA4644 for ; Fri, 12 May 2006 11:34:12 -0400 Received: (qmail 31968 invoked from network); 12 May 2006 15:34:01 -0000 Received: from localhost (HELO ANDI-NOTEBOOK.zend.com) (127.0.0.1) by localhost with SMTP; 12 May 2006 15:34:01 -0000 Message-ID: <7.0.1.0.2.20060512082920.040b4040@zend.com> X-Mailer: QUALCOMM Windows Eudora Version 7.0.1.0 Date: Fri, 12 May 2006 08:34:07 -0700 To: Jason Garber ,internals@lists.php.net In-Reply-To: <785810036.20060511193536@ionzoft.com> References: <785810036.20060511193536@ionzoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: [PHP-DEV] private, protected, readonly, public From: andi@zend.com (Andi Gutmans) I can see where it could come in handy but I honestly think it'd be bloat. We have to relax with the OO features because the increased code size has already made it harder to maintain and it has the potential to make PHP far more complicated than what it should be. At 04:35 PM 5/11/2006, Jason Garber wrote: >Hello internals, > > __get() and __set() are great, but 90% of the time, I find myself > using them to create public readonly properties. > > The only problem with this is it is horridly inefficient, consuming > at least 1 function call and one switch statement (or equiv) per > property read. > > Would it be possible to create a new object property attribute: > readonly > > class xx > { > readonly $bar; > } > > $o = new xx(); > > $o->bar = 10; > >>> FATAL ERROR > > > This way, PHP would allow reading (as if it were public), but only > allow writing from within the class. > > I think it could really boost performance of complicated application > logic that wishes to enforce good visibility. > > Comments? > > PS. What brought this up was some serious performance issues in a > piece of code that I am working with - most of which can be tied > back to __get() performance. > >-- >Best regards, > Jason Garber mailto:jason@ionzoft.com > IonZoft, Inc. > >-- >PHP Internals - PHP Runtime Development Mailing List >To unsubscribe, visit: http://www.php.net/unsub.php