Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:30028 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51998 invoked by uid 1010); 1 Jun 2007 12:43:16 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 51983 invoked from network); 1 Jun 2007 12:43:16 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Jun 2007 12:43:16 -0000 Authentication-Results: pb1.pair.com header.from=dohpaz@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=dohpaz@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 64.233.184.229 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: dohpaz@gmail.com X-Host-Fingerprint: 64.233.184.229 wr-out-0506.google.com Linux 2.4/2.6 Received: from [64.233.184.229] ([64.233.184.229:63111] helo=wr-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 26/B5-03780-46410664 for ; Fri, 01 Jun 2007 08:43:16 -0400 Received: by wr-out-0506.google.com with SMTP id 41so266462wry for ; Fri, 01 Jun 2007 05:43:14 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=eekkQ5LP1JoPF6ba74qqPU47QZ+I7LhH58w+2b0FPSPqQJ4+IySsSOIlJuzi7AthjLMiB0o2f0PloIl0QBdl0FGcdAtPaSNVaPiIm4s1evM1Ml9mCDXw1EEjtB3jLzVFOCIXUdRW4vKqJHBooSNwtcYEzNtBBzJGyfT0ftDFg1U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=bF8leMYUV6bNJB9n9T7a9GFwW635E2u+jVpzDF7fGugKxek8mVdNldeKDDqjnOgzk6MaxxSMzLgs/2yBxQoXsoNrzDQeqhkg3d1BpkdEC2aRGMKYaPKprCuOuwy+VHqSJdNUAvnA+IwU1WWYKTkdLfOYHy/qRw2HUFcdiTwtrV8= Received: by 10.78.205.7 with SMTP id c7mr1216537hug.1180701793309; Fri, 01 Jun 2007 05:43:13 -0700 (PDT) Received: by 10.78.149.16 with HTTP; Fri, 1 Jun 2007 05:43:13 -0700 (PDT) Message-ID: Date: Fri, 1 Jun 2007 08:43:13 -0400 To: internals@lists.php.net In-Reply-To: <465FC76B.6030208@mediawave.nl> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_4587_7906175.1180701793243" References: <56275.216.230.84.67.1180484964.squirrel@www.l-i-e.com> <465D9040.6030001@iamjochem.com> <43689.216.230.84.67.1180643866.squirrel@www.l-i-e.com> <465FC76B.6030208@mediawave.nl> Subject: Re: [PHP-DEV] late static binding From: dohpaz@gmail.com ("Ken Stanley") ------=_Part_4587_7906175.1180701793243 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline First of all, thank you to everybody who has responded to my (silly) questions; you have made this subject a lot more understandable. :) static:: seems weird because it implies otherkeyword:: is not static. I think the point that was made from the other posters was that child:: was way too confusing because it implied something that just goes way beyond the scope of what the PHP can and cannot do. Without any other reasonable alternative to the keyword, I have to agree that static:: is the best candidate for the job. As for parent/self:: and even static::, what makes them static is the scope resolution operator (::), not their name. Their name just implies the context in which they are to be used. Anyways, I don't think there is a perfect solution that everybody would just love. It appears that this is a very difficult subject. Perhaps we should forget about the whole keyword and just allow objects > to access its static members like any other member? It works like that > for static functions too. Why not let it act that way for static > variables?: I would have to disagree with you on this subject. The whole point of having a static model is the ability to access members of classes without having to instantiate them. ClassName::classMember is completely different than $className->classMember. Using the former means that you do not necessarily have an instantiated object of ClassName, but in the latter it is implied that you do. I would think that using $this::classMember in the wrong place could lead to some very troubling errors at run-time. -- It looked like something resembling white marble, which was probably what it was: something resembling white marble. -- Douglas Adams, "The Hitchhikers Guide to the Galaxy" ------=_Part_4587_7906175.1180701793243--