Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93527 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 30571 invoked from network); 25 May 2016 19:43:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 May 2016 19:43:57 -0000 Authentication-Results: pb1.pair.com header.from=ocramius@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ocramius@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.45 as permitted sender) X-PHP-List-Original-Sender: ocramius@gmail.com X-Host-Fingerprint: 74.125.82.45 mail-wm0-f45.google.com Received: from [74.125.82.45] ([74.125.82.45:32779] helo=mail-wm0-f45.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 55/D9-14311-C7006475 for ; Wed, 25 May 2016 15:43:56 -0400 Received: by mail-wm0-f45.google.com with SMTP id s131so16488647wme.0 for ; Wed, 25 May 2016 12:43:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=2X/rmyNbCz+lCf8vmndXBSXuwv7tDJTBi5BSk+tW8ms=; b=qYDTyrcCqkRKfnmQkBY70TyZSSV9C7oQ+GswyGlsNnVQChzcluK61nwN9r+2tpTsOa M3jE9w81bUkl8aI2u3I1m5ZZO+O+PBqgizC+FxoJjBPjXb415je+8evz7mU1MaPxzWyd 6py6BYzhAoyXtSQQ65NDlA9UyK1Cl4OYyy0S9Pt79SPX/eE2aoiSHoWeII4h5n09ENF+ iPy53b5olwHw4sr/RcQwRBmS82C2qJuRjRo5508gwy6ola+VNe1+lhvn2YrDURHw1N8F JT/bVKu1YUApafmj0rCOQBHM6LEZqBpbiZfYlkzI/4sw5AIBF3Q9Wzl0Zcjn+YAhSCru DlTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=2X/rmyNbCz+lCf8vmndXBSXuwv7tDJTBi5BSk+tW8ms=; b=Q6m8XNQCuHOWW4lFHDPhXTnefSqZVOfLX6dyfYHRYL4qpIkRVbv9hquHTcMx4cBtSG QOI6fzsjct7FTxvXSIzXhNgysx7IBW69CAa9+MVjxVwWJrAnn6zhQAO22YOfV/e5f03d xJPPPoNhkgVrVyTJwwgkMCoaf4bMPZqB3AfE4PE34VjUQWOFa/fl1zTSpdmpPgc16q1r /Vn4zrOBusrdcgzC9TOR2j7+HPC9y02FMOJDfT8EoLHs1/R3tdRnUKtarllIYVR0XNka LV84genRXDcd1Pzs5EKVluykg68CUWNMCjY3czYAUP9ks2lwCzRXIqbJirJETuY4Rtpp f8nA== X-Gm-Message-State: ALyK8tL5Q30qrjnCadH2cuz41WG2iN5I+m0WU61hMSalJvTQAi3QnYB7bvgrzSErfBttwUY77/JoQM/F1v2i9Q== X-Received: by 10.28.153.80 with SMTP id b77mr5371759wme.71.1464205432896; Wed, 25 May 2016 12:43:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.35.225 with HTTP; Wed, 25 May 2016 12:43:32 -0700 (PDT) In-Reply-To: References: <80.72.63510.DAFA5475@pb1.pair.com> <68fd73e7-ad19-3758-7b7a-6013cc26385f@gmail.com> <11.87.14311.EC5E5475@pb1.pair.com> <46620281-18af-094f-d484-8fc69bd7dc11@gmail.com> Date: Wed, 25 May 2016 21:43:32 +0200 Message-ID: To: Niklas Keller Cc: PHP Internals , Stanislav Malyshev , Andrea Faulds Content-Type: multipart/alternative; boundary=001a114b3100b4c3750533afe49b Subject: Re: [PHP-DEV] [RFC][Vote] Typed Properties From: ocramius@gmail.com (Marco Pivetta) --001a114b3100b4c3750533afe49b Content-Type: text/plain; charset=UTF-8 On 25 May 2016 at 21:13, Niklas Keller wrote: > Unset can reset it to the default value, but wiping type information is > probably > not an option here. > Wiping type info is indeed unwanted. As it currently stands, for example, un-setting a property and then re-assigning it retains its visibility properties, and doesn't destroy property information. See https://3v4l.org/pCmTV for an example (copied here for reference): bar); } public function getFooBar() { return $this->bar; } } class Bar extends Foo { private $bar = 'baz'; public function __construct() { parent::__construct(); unset($this->bar); } public function getBarBar() { return $this->bar; } } $bar = new Bar(); var_dump($bar->getFooBar()); // notice + null var_dump($bar->getBarBar()); // notice + null $rBarBar = new ReflectionProperty(Foo::class, 'bar'); $rBarBar->setAccessible(true); $rBarBar->setValue($bar, __LINE__); var_dump($bar->getFooBar()); // line no. var_dump($bar->getBarBar()); // notice + null Marco Pivetta http://twitter.com/Ocramius http://ocramius.github.com/ --001a114b3100b4c3750533afe49b--