Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93568 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60204 invoked from network); 26 May 2016 15:02:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 May 2016 15:02:50 -0000 Authentication-Results: pb1.pair.com smtp.mail=neclimdul@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=neclimdul@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.47 as permitted sender) X-PHP-List-Original-Sender: neclimdul@gmail.com X-Host-Fingerprint: 209.85.218.47 mail-oi0-f47.google.com Received: from [209.85.218.47] ([209.85.218.47:35196] helo=mail-oi0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5B/18-17600-91017475 for ; Thu, 26 May 2016 11:02:49 -0400 Received: by mail-oi0-f47.google.com with SMTP id w184so121621687oiw.2 for ; Thu, 26 May 2016 08:02:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=43jgBkEL2sITR6eSs2bQd6B2ZX8oz2q1KxaYZhpRiYs=; b=nMfqwwzElp1aKXW/hGAvPHSErlBhsrYiwhj70B6zx5Zca1UhNNN2cZVswlEnfN8XwH oF3Z0VeR2iUaO9auwnSF+SoLQQyAI5SVH1OWeSzPzw3G+F3tgABvfU5CE6Ou8ObY/oLr g+C+QUwkG33jobtZSZi07VPQZQCyKAiHufWg/z9Mv+uRVDmBVYFgl8XNPgZjtedEwFIm PA+b2y+ZCLPJZvjnmrrmlDm7XdH18yLldQDOtwS6QRC/sT4Gs8SDdlWw8K3MHwUnKFsj eMlNGBHy5M+Vozn8iYmWfrpUJSYS3F1NBqblPljjIBmrd9NmTEMrsn9NZheuKFQEO0Wm KiCg== 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:date :message-id:subject:from:to; bh=43jgBkEL2sITR6eSs2bQd6B2ZX8oz2q1KxaYZhpRiYs=; b=DLi+qHtIsbpkNFBlYzRcKa/m8CKbPOwLkslqKbaAG8Dz0DHdrmkCI7fEUM8+fDQuMb 2WloAEH+6LS8z84ekLj1eGa2SRW8UL0sR5wc4SKsNVKZg6fcpn/kNUkBmPqq/SVZx6n5 LM//9XcEgaC+JdyjYPs+RJBFLugpRHCH56otuMligVKGvMcbjYFcqL6wRXYYd+l7Z7/6 UKWlmLjuKhLre8d3yJAQ/OuP+bgOVGuUMWtndypFIZA3kyIEJXywO2hCsFOff47w0GIX e9c/p93Pd8lwwXNE9zIV26fV6aOaS6BDOP1Z69YB5eezZdQzEXmha6jqiBDGGVGd5WAG CykQ== X-Gm-Message-State: ALyK8tL5IAlLHOYGvQ8kJaTdbCKJzvK3rfAAMUbo0zW8uZWVjK0ZQ+sIeAykO0Qi2okZCtXUcTDn3L0D2Q7GLA== MIME-Version: 1.0 X-Received: by 10.202.181.131 with SMTP id e125mr5580854oif.12.1464274966713; Thu, 26 May 2016 08:02:46 -0700 (PDT) Received: by 10.182.162.106 with HTTP; Thu, 26 May 2016 08:02:46 -0700 (PDT) In-Reply-To: References: <20160525215208.034FC1A801B3@dd1730.kasserver.com> Date: Thu, 26 May 2016 10:02:46 -0500 Message-ID: To: Tom Worster , Thomas Bley , ajf@ajf.me, PHP Internals Content-Type: multipart/alternative; boundary=001a113ce0d23e9e890533c015dd Subject: Re: [PHP-DEV] [RFC][Vote] Typed Properties From: neclimdul@gmail.com (James Gilliland) --001a113ce0d23e9e890533c015dd Content-Type: text/plain; charset=UTF-8 > > If you want, you can easily write a backwards-compatible new class that > uses declared type properties with > public int $property = null; And for those pesky third party libraries that forgot to set = NULL on their property definition there's a backwards compatible accessor too. $foo = $obj->bar ?? NULL; Sarcasm aside, I still can't figure out how fundamentally changing how people interact with uninitialized properties like this improves developer experience. Can someone explain a case where this is better and catches a bug or something? Since this is a new feature I would assume its not covered by "BC" but this seems like a painful gotcha for people developing across typed and untyped code. --001a113ce0d23e9e890533c015dd--