Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:37295 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 12586 invoked from network); 29 Apr 2008 15:17:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 29 Apr 2008 15:17:20 -0000 Authentication-Results: pb1.pair.com header.from=quickshiftin@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=quickshiftin@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 72.14.220.159 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: quickshiftin@gmail.com X-Host-Fingerprint: 72.14.220.159 fg-out-1718.google.com Received: from [72.14.220.159] ([72.14.220.159:40980] helo=fg-out-1718.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 74/D3-26601-EFB37184 for ; Tue, 29 Apr 2008 11:17:19 -0400 Received: by fg-out-1718.google.com with SMTP id 22so33666fge.23 for ; Tue, 29 Apr 2008 08:17:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=M6PGQHR+GpZ+XXP97akj0t4wMbxNkeBPSVDn1GHhcKU=; b=O7lyW5EGS8EtUa4boH5PVF2IxybLdHhXflhEbnQXTicGKxxjfSvkAAajxs0uMaNlSLHtdUxfyJRVsKuZI9NozFdH2XLPYheresECJHdeD6dmCmZdLTa9GxdpD6LDh+TnLFP0JyoM4eyKuVyQ5P8gkQPZRUZ7JgLV063hONoC6yU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=V5QhMynN2sWHyS1pSvpAXGc8wKnVcgsJs3X612waOBJ9a1pErycfxKm9J42q7MS7WZlY3Rv7607UmxCewHjTA/qPw0MNJBSPgBYm6RrsvIhcZrX0ojrK8kYG+UT3Jm4ytLphfKY3TEv355ifoioGsQZxq2QTy7Eq2BRBe/KXHiw= Received: by 10.86.51.10 with SMTP id y10mr3281257fgy.21.1209482235458; Tue, 29 Apr 2008 08:17:15 -0700 (PDT) Received: by 10.86.59.15 with HTTP; Tue, 29 Apr 2008 08:17:15 -0700 (PDT) Message-ID: <7dd2dc0b0804290817v3d8de030y1208a88f78c44411@mail.gmail.com> Date: Tue, 29 Apr 2008 11:17:15 -0400 To: "John Carter -X (johncart - PolicyApp Ltd at Cisco)" Cc: internals@lists.php.net In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_13417_21805952.1209482235462" References: <48169695.9040803@omegavortex.net> <339714303.20080429114607@marcus-boerger.de> Subject: Re: Re: [PHP-DEV] Class Properties in Interfaces? From: quickshiftin@gmail.com ("Nathan Nobbe") ------=_Part_13417_21805952.1209482235462 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Tue, Apr 29, 2008 at 6:28 AM, John Carter -X (johncart - PolicyApp Ltd at Cisco) wrote: > > I think I must be missing something here, but this sounds a little > tautological - "we can't do it because it doesn't make sense. This is > because it doesn't make sense" > > Certainly most people (myself included) consider interfaces to be > methods only, but I can't find a reason why not, and a > search-on-wikipedia-instead-of-doing-proper-research appears to allow > it: http://en.wikipedia.org/wiki/Interface_%28computer_science%29 the problem with that article, as it pertains to this conversation is that it is referring to interfaces as a general concept. 'interfaces' can be formed in many ways, via extension of an abstract class or even an expected set of a parameters in an HTTP request... getting to the more concrete term 'interface' as it pertains to a language keyword, interfaces define a contract; they do not specify implementation details. member variables only facilitate the actions member functions expose and therefore, they are part of the implementation. additionally, one can look to java (and likely others) to see that public attributes are not supported on interfaces. here is a definition from a java5 cert book; "When you create an interface, you're defining a contract for *what* a class can do, without saying anything about how the class will do it. An interface is a contract." -nathan ------=_Part_13417_21805952.1209482235462--