Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:37704 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60948 invoked from network); 18 May 2008 17:31:28 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 18 May 2008 17:31:28 -0000 Authentication-Results: pb1.pair.com header.from=helly@php.net; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=helly@php.net; spf=unknown; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain php.net does not designate 85.214.94.56 as permitted sender) X-PHP-List-Original-Sender: helly@php.net X-Host-Fingerprint: 85.214.94.56 aixcept.net Linux 2.6 Received: from [85.214.94.56] ([85.214.94.56:42380] helo=h1149922.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 93/CE-57662-DE760384 for ; Sun, 18 May 2008 13:31:28 -0400 Received: from MBOERGER-ZRH.corp.google.com (71-170.78-83.cust.bluewin.ch [83.78.170.71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by h1149922.serverkompetenz.net (Postfix) with ESMTP id 55A9C11DACB; Sun, 18 May 2008 19:31:22 +0200 (CEST) Date: Sun, 18 May 2008 19:30:53 +0200 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <1082257838.20080518193053@marcus-boerger.de> To: Christian Schneider CC: Marcus Boerger , PHP Developers Mailing List In-Reply-To: References: <48169695.9040803@omegavortex.net> <7dd2dc0b0804290817v3d8de030y1208a88f78c44411@mail.gmail.com> <862660524.20080506162159@marcus-boerger.de> <912CE6DE-22D0-43E6-BB6B-6154980050E5@procata.com> <1210101672.3952.4.camel@localhost> <489751132.20080506214551@marcus-boerger.de> <10845a340805070633q2316a598lc1a69f259c523341@mail.gmail.com> <92634160.20080512164700@marcus-boerger.de> <10845a340805120803k2587870bnf890ce44765f5e97@mail.gmail.com> <721653902.20080513155302@marcus-boerger.de> <4829A0C9.5050308@cschneid.com> <1629174644.20080514020633@marcus-boerger.de> <76FF1B4A-1CAB-407A-9E6D-41E8C1137FCB@cschneid.com> <1284376279.20080518132000@marcus-boerger.de> <203770284.20080518184111@marcus-boerger.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] Class Properties in Interfaces? From: helly@php.net (Marcus Boerger) Hello Christian, Sunday, May 18, 2008, 7:16:55 PM, you wrote: > Hi Marcus, > Am 18.05.2008 um 18:41 schrieb Marcus Boerger: >> Just to make this clear once and for ever. If unset() deletes the >> property then: >> a) it would break inheritance >> b) accomplish nothing, as the next access would simply recreate it > Ok, you don't want this thread to die, so here we go: You keep on > repeating your two points, care to show some code demonstrating it? > Contradicting tests: > class A { var $foo = 42; } > $a = new A; > var_dump($a); > # Output: object(A)#2 (1) { ["foo"]=> int(42) } > $a->foo = null; > var_dump($a); > # Output: object(A)#2 (1) { ["foo"]=> NULL } > unset($a->foo); > var_dump($a); > # Output: object(A)#2 (0) { } > $x = $a->foo; > var_dump($a); > # Output: object(A)#2 (0) { } > This is exactly the same behaviour as for any variable, nothing broken > here. > Can we please move on now? A member variable simply is not like any other variable. It is being declared and part of an interface. Removing it means changing the interface means breaking inheritance. So making this possible is a bug in the engine. End of the story. Best regards, Marcus